Date: (Wed) Nov 11, 2015
Data: Source: Training: https://inclass.kaggle.com/c/15-071x-the-analytics-edge-summer-2015/download/eBayiPadTrain.csv
New: https://inclass.kaggle.com/c/15-071x-the-analytics-edge-summer-2015/download/eBayiPadTest.csv
Time period:
Based on analysis utilizing <> techniques,
Regression results: First run:
Classification results: template: prdline.my == “Unknown” -> 296 Low.cor.X.glm: Leaderboard: 0.83458 -> Rank 288 / 1884 0.85514 newobs_tbl=[N=471, Y=327]; submit_filename=template_Final_glm_submit.csv OOB_conf_mtrx=[YN=125, NY=76]=201; max.Accuracy.OOB=0.7710; opt.prob.threshold.OOB=0.6 startprice=100.00; biddable=95.42; productline=49.22; D.T.like=29.75; D.T.use=26.32; D.T.box=21.53;
prdline: -> Worse than template prdline.my == “Unknown” -> 285 All.X.no.rnorm.rf: Leaderboard: 0.82649 newobs_tbl=[N=485, Y=313]; submit_filename=prdline_Final_rf_submit.csv OOB_conf_mtrx=[YN=119, NY=80]=199; max.Accuracy.OOB=0.8339; opt.prob.threshold.OOB=0.5 startprice=100.00; biddable=84.25; D.sum.TfIdf=7.28; D.T.use=4.26; D.T.veri=2.78; D.T.scratch=1.99; D.T.box=; D.T.like=; Low.cor.X.glm: Leaderboard: 0.81234 newobs_tbl=[N=471, Y=327]; submit_filename=prdline_Low_cor_X_glm_submit.csv OOB_conf_mtrx=[YN=125, NY=74]=199; max.Accuracy.OOB=0.8205; opt.prob.threshold.OOB=0.6 startprice=100.00; biddable=96.07; prdline.my=51.37; D.T.like=29.39; D.T.use=25.43; D.T.box=22.27; D.T.veri=; D.T.scratch=;
oobssmpl: -> Low.cor.X.glm: Leaderboard: 0.83402 newobs_tbl=[N=440, Y=358]; submit_filename=oobsmpl_Final_glm_submit OOB_conf_mtrx=[YN=114, NY=84]=198; max.Accuracy.OOB=0.7780; opt.prob.threshold.OOB=0.5 startprice=100.00; biddable=93.87; prdline.my=60.48; D.sum.TfIdf=; D.T.condition=8.69; D.T.screen=7.96; D.T.use=7.50; D.T.veri=; D.T.scratch=;
category: -> Low.cor.X.glm: Leaderboard: 0.82381 newobs_tbl=[N=470, Y=328]; submit_filename=category_Final_glm_submit OOB_conf_mtrx=[YN=119, NY=57]=176; max.Accuracy.OOB=0.8011; opt.prob.threshold.OOB=0.6 startprice=100.00; biddable=79.19; prdline.my=55.22; D.sum.TfIdf=; D.T.ipad=27.05; D.T.like=21.44; D.T.box=20.67; D.T.condition=; D.T.screen=;
dataclns: -> All.X.no.rnorm.rf: Leaderboard: 0.82211 newobs_tbl=[N=485, Y=313]; submit_filename=dataclns_Final_rf_submit OOB_conf_mtrx=[YN=104, NY=75]=179; max.Accuracy.OOB=0.7977; opt.prob.threshold.OOB=0.5 startprice.log=100.00; biddable=65.85; prdline.my=7.74; D.sum.TfIdf=; D.T.use=2.01; D.T.condition=1.87; D.T.veri=1.62; D.T.ipad=; D.T.like=; Low.cor.X.glm: Leaderboard: 0.79264 newobs_tbl=[N=460, Y=338]; submit_filename=dataclns_Low_cor_X_glm_submit OOB_conf_mtrx=[YN=113, NY=74]=187; max.Accuracy.OOB=0.7977; opt.prob.threshold.OOB=0.5 -> different from prev run of 0.6 biddable=100.00; startprice.log=91.85; prdline.my=38.34; D.sum.TfIdf=; D.T.ipad=29.92; D.T.box=27.76; D.T.work=25.79; D.T.use=; D.T.condition=;
txtterms: -> top_n = c(10) Low.cor.X.glm: Leaderboard: 0.81448 newobs_tbl=[N=442, Y=356]; submit_filename=txtterms_Final_glm_submit OOB_conf_mtrx=[YN=113, NY=69]=182; max.Accuracy.OOB=0.7943; opt.prob.threshold.OOB=0.5 biddable=100.00; startprice.log=90.11; prdline.my=37.65; D.sum.TfIdf=; D.T.ipad=28.67; D.T.work=24.90; D.T.great=21.44; # [1] “D.T.condit” “D.T.condition” “D.T.good” “D.T.ipad” “D.T.new”
# [6] “D.T.scratch” “D.T.screen” “D.T.this” “D.T.use” “D.T.work”
All.X.glm: Leaderboard: 0.81016
newobs_tbl=[N=445, Y=353]; submit_filename=txtterms_Final_glm_submit
OOB_conf_mtrx=[YN=108, NY=72]=180; max.Accuracy.OOB=0.7966;
opt.prob.threshold.OOB=0.5
biddable=100.00; startprice.log=88.24; prdline.my=33.81; D.sum.TfIdf=;
D.T.scratch=25.51; D.T.use=18.97; D.T.good=16.37;
[1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.great” “D.T.excel” “D.T.work” “D.T.ipad”
Max.cor.Y.rpart: Leaderboard: 0.79258
newobs_tbl=[N=439, Y=359]; submit_filename=txtterms_Final_rpart_submit
OOB_conf_mtrx=[YN=105, NY=76]=181; max.Accuracy.OOB=0.7954802;
opt.prob.threshold.OOB=0.5
startprice.log=100; biddable=; prdline.my=; D.sum.TfIdf=;
D.T.scratch=; D.T.use=; D.T.good=;
[1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
All.X.no.rnorm.rf: Leaderboard: 0.80929
newobs_tbl=[N=545, Y=253]; submit_filename=txtterms_Final_rf_submit
OOB_conf_mtrx=[YN=108, NY=61]=169; max.Accuracy.OOB=0.8090395
opt.prob.threshold.OOB=0.5
startprice.log=100.00; biddable=78.82; idseq.my=63.43; prdline.my=45.57;
D.T.use=2.76; D.T.condit=2.35; D.T.scratch=2.00; D.T.good=;
[1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
txtclstr: All.X.no.rnorm.rf: Leaderboard: 0.79363 -> 0.79573 newobs_tbl=[N=537, Y=261]; submit_filename=txtclstr_Final_rf_submit OOB_conf_mtrx=[YN=104, NY=61]=165; max.Accuracy.OOB=0.8135593 opt.prob.threshold.OOB=0.5 startprice.log=100.00; biddable=79.99; idseq.my=64.94; prdline.my=4.14; prdline.my.clusterid=1.15; [1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
dupobs: All.X.no.rnorm.rf: Leaderboard: 0.79295 newobs_tbl=[N=541, Y=257]; submit_filename=dupobs_Final_rf_submit OOB_conf_mtrx=[YN=114, NY=65]=179; max.Accuracy.OOB=0.7977401 opt.prob.threshold.OOB=0.5 startprice.log=100.00; biddable=94.49; idseq.my=67.40; prdline.my=4.48; prdline.my.clusterid=1.99; [1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
All.X.no.rnorm.rf: Leaderboard: 0.79652
newobs_tbl=[N=523, Y=275]; submit_filename=dupobs_Final_rf_submit
OOB_conf_mtrx=[YN=114, NY=65]=179; max.Accuracy.OOB=0.7977401
opt.prob.threshold.OOB=0.5
startprice.log=100.00; biddable=94.24; idseq.my=67.92;
prdline.my=4.33; prdline.my.clusterid=2.17;
[1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
csmmdl: All.X.no.rnorm.rf: Leaderboard: 0.79396 newobs_tbl=[N=525, Y=273]; submit_filename=csmmdl_Final_rf_submit OOB_conf_mtrx=[YN=111, NY=66]=177; max.Accuracy.OOB=0.8000000 opt.prob.threshold.OOB=0.5 startprice.log=100.00; biddable=90.30; idseq.my=67.06; prdline.my=4.40; cellular.fctr=3.57; prdline.my.clusterid=2.08;
All.Interact.X.no.rnorm.rf: Leaderboard: 0.77867 newobs_tbl=[N=564, Y=234]; submit_filename=csmmdl_Final_rf_submit OOB_conf_mtrx=[YN=120, NY=53]=173; max.Accuracy.OOB=0.8045198 opt.prob.threshold.OOB=0.5 biddable=100.00; startprice.log=93.99; idseq.my=57.30; prdline.my=9.09; cellular.fctr=3.30; prdline.my.clusterid=2.35;
All.Interact.X.no.rnorm.rf: Leaderboard: 0.77152 newobs_tbl=[N=539, Y=259]; submit_filename=csmmdl_Final_rf_submit OOB_conf_mtrx=[YN=, NY=]=; max.Accuracy.OOB=0.8011299 opt.prob.threshold.OOB=0.5 biddable=100.00; startprice.log=94.93; idseq.my=57.12; prdline.my=9.29; cellular.fctr=3.20; prdline.my.clusterid=2.50; [1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
All.X.glmnet:
fit_RMSE=???; OOB_RMSE=115.1247; new_RMSE=115.1247;
prdline.my.fctr=100.00; condition.fctrNew=88.53; D.npnct09.log=84.34
biddable=16.48; idseq.my=57.27;
spdiff:
All.Interact.X.no.rnorm.rf: Leaderboard: 0.78218 newobs_tbl=[N=517, Y=281]; submit_filename=spdiff_Final_rf_submit OOB_conf_mtrx=[YN=121, NY=38]=159; max.Accuracy.OOB=0.8203390 opt.prob.threshold.OOB=0.6 biddable=100.00; startprice.diff=57.53; idseq.my=41.31; prdline.my=11.43; cellular.fctr=2.36; prdline.my.clusterid=1.82;
All.X.no.rnorm.rf:
fit_RMSE=92.19; OOB_RMSE=130.86; new_RMSE=130.86;
biddable=100.00; prdline.my.fctr=61.92; idseq.my=57.77;
condition.fctr=29.53; storage.fctr=11.22; color.fctr=6.69;
cellular.fctr=6.11
All.X.no.rnorm.rf: Leaderboard: 0.77443
newobs_tbl=[N=606, Y=192]; submit_filename=spdiff_Final_rf_submit
OOB_conf_mtrx=[YN=112, NY=28]=140; max.Accuracy.OOB=0.8418079
opt.prob.threshold.OOB=0.6
startprice.diff=100.00; biddable=96.53; idseq.my=38.10;
prdline.my=3.65; cellular.fctr=2.21; prdline.my.clusterid=0.91;
[1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
color: All.Interact.X.glmnet: fit_RMSE=88.64520; prdline.my.fctr:D.TfIdf.sum.stem.stop.Ratio=100.00; prdline.my.fctr:condition.fctr=77.35 D.TfIdf.sum.stem.stop.Ratio=68.18 prdline.my.fctr:color.fctr=68.12 prdline.my.fctr:storage.fctr=63.32
All.X.no.rnorm.rf: Leaderboard: 0.80638
newobs_tbl=[N=550, Y=248]; submit_filename=color_Final_rf_submit
OOB_conf_mtrx=[YN=108, NY=54]=162; max.Accuracy.OOB=0.8169492
opt.prob.threshold.OOB=0.5
biddable=100.00; startprice.diff=77.90; idseq.my=48.49;
D.ratio.sum.TfIdf.nwrds=6.48; storage.fctr=4.74;
D.TfIdf.sum.stem.stop.Ratio=4.57; prdline.my=4.32;
[1] “D.T.condit” “D.T.use” “D.T.scratch” “D.T.new” “D.T.good” “D.T.screen” [7] “D.T.ipad” “D.T.great” “D.T.work” “D.T.excel”
All.Interact.X.no.rnorm.rf: Leaderboard: 0.72974
newobs_tbl=[N=682, Y=116]; submit_filename=assctxt_Final_rf_submit
OOB_conf_mtrx=[YN=125, NY=43]=168; max.Accuracy.OOB=0.8101695; max.auc.OOB=???;
opt.prob.threshold.OOB=0.6
biddable=100.00; startprice.diff=51.04; idseq.my=29.51;
startprice.diff:biddable=28.70
prdline.my.fctriPadmini:idseq.my=6.89
Highest max.auc.OOB=???; for model:
All.X.no.rnorm.rf: min.RMSE.fit=1.4967021
biddable 100.00000000 idseq.my 98.00292371 startprice.unit9 34.31130220 prdl.my.descr.fctr 18.10984741 D.ratio.sum.TfIdf.nwrds 15.23549621 color.fctrUnknown 14.05520993 D.TfIdf.sum.stem.stop.Ratio 13.00884673 D.ratio.nstopwrds.nwrds 10.51165302
All.X.gbm: Leaderboard: 0.75430
newobs_tbl=[N=582, Y=216]; submit_filename=mdlsel_Final_gbm_submit
OOB_conf_mtrx=[YN=58, NY=65]=123;
max.Accuracy.OOB=0.8617978; max.auc.OOB=0.9367161;
opt.prob.threshold.OOB=0.5
startprice.diff 100.0000000 100.00000000 biddable 66.6475055 65.40764971 idseq.my 1.8632456 4.55963698
splogdiff: All.X.gbm: Leaderboard: 0.70111 newobs_tbl=[N=553, Y=245]; submit_filename=splogdiff_Final_gbm_submit OOB_conf_mtrx=[YN=35, NY=101]=136; max.Accuracy.OOB=0.8471910; max.auc.OOB=0.9388912; opt.prob.threshold.OOB=0.3 startprice.log.diff 100.0000000 100.0000000 biddable 86.8563123 88.0261866 idseq.my 8.3580281 2.9054298
Forum Ideas: I then focused on feature engineering, each new variable brought its own little improvement so in the end i just kept adding new ones and let the models do their thing. Here are some i used: model (productline:storage:condition), isNew, model2 (product:isNew), 50 common words from descr, descrLength, capsFactor (% of caps in description), number of cheaper items of same model2, number of dearer items of same model2, priceFactor (vs. mean of price for model), priceFactor2 (vs. mean of price for model2), bigID (if ID> 11000 because there seems to be a huge drop in sales after some time), timeline (year of product launch, reasoning is you want to spend less money on older products).
Get the median startprice for each level of productline and condition. Take the difference from startprice as a new variable. I find median works much better than the mean since startprice is not normally distributed. I also created another binary variable on whether this difference is positive or negative.
Square root startprice
scale and center all the variables except sold, including the dummies.
Use plot.ly for interactive plots ?
varImp for randomForest crashes in caret version:6.0.41 -> submit bug report
extensions toward multiclass classification are scheduled for the next release
glm_dmy_mdl should use the same method as glm_sel_mdl until custom dummy classifer is implemented
rm(list = ls())
set.seed(12345)
options(stringsAsFactors = FALSE)
source("~/Dropbox/datascience/R/myscript.R")
source("~/Dropbox/datascience/R/mydsutils.R")
## Loading required package: caret
## Loading required package: lattice
## Loading required package: ggplot2
source("~/Dropbox/datascience/R/myplot.R")
source("~/Dropbox/datascience/R/mypetrinet.R")
source("~/Dropbox/datascience/R/myplclust.R")
source("~/Dropbox/datascience/R/mytm.R")
# Gather all package requirements here
suppressPackageStartupMessages(require(doMC))
registerDoMC(6) # # of cores on machine - 2
suppressPackageStartupMessages(require(caret))
source("~/Documents/Work/PullRequests/caret/pkg/caret/R/confusionMatrix.R")
source("~/Documents/Work/PullRequests/caret/pkg/caret/R/ggplot.R")
#packageVersion("tm")
#require(sos); findFn("cosine", maxPages=2, sortby="MaxScore")
# Analysis control global variables
# Inputs
glb_trnng_url <- "https://inclass.kaggle.com/c/15-071x-the-analytics-edge-summer-2015/download/eBayiPadTrain.csv"
glb_newdt_url <- "https://inclass.kaggle.com/c/15-071x-the-analytics-edge-summer-2015/download/eBayiPadTest.csv"
glbInpMerge <- # NULL #: default
list(fnames = c("ebayipads_finmdl_bid0_sp_out.csv", "ebayipads_mdlens_bid1_sp_out.csv"))
glb_is_separate_newobs_dataset <- TRUE # or TRUE
glb_split_entity_newobs_datasets <- FALSE # select from c(FALSE, TRUE)
glb_split_newdata_method <- NULL # select from c(NULL, "condition", "sample", "copy")
glb_split_newdata_condition <- NULL # or "is.na(<var>)"; "<var> <condition_operator> <value>"
glb_split_newdata_size_ratio <- 0.3 # > 0 & < 1
glb_split_sample.seed <- 123 # or any integer
glbObsDropCondition <- # default : NULL
"(UniqueID %in% c(NULL
, 11234 #sold=0; 2 other dups(10306, 11503) are sold=1
, 11844 #sold=0; 3 other dups(11721, 11738, 11812) are sold=1
)) |
(productline %in% c('iPad 5', 'iPad mini Retina'))
# | (biddable != 0) # bid0_sp
# | (biddable == 0) # bid1_sp
"
#parse(text=glbObsDropCondition)
#subset(glb_allobs_df, .grpid %in% c(31))
glb_obs_repartition_train_condition <- NULL
# "!is.na(sold) & (sold == 1)" # : bid._sp
glb_max_fitobs <- NULL # or any integer
glb_is_regression <- FALSE; glb_is_classification <- !glb_is_regression;
glb_is_binomial <- TRUE #or FALSE
glb_rsp_var_raw <- "sold" #: !_sp # "startprice" # : bid._sp #
# for classification, the response variable has to be a factor
glb_rsp_var <- "sold.fctr" #:!_sp # "startprice.log10" :bid._sp # glb_rsp_var_raw :default
# if the response factor is based on numbers/logicals e.g (0/1 OR TRUE/FALSE vs. "A"/"B"),
# or contains spaces (e.g. "Not in Labor Force")
# caret predict(..., type="prob") crashes
glb_map_rsp_raw_to_var <- function(raw) { # NULL
# return(raw ^ 0.5)
# return(log(1 + raw))
# return(log10(raw)) # bid._sp
# return(exp(-raw / 2))
ret_vals <- rep_len(NA, length(raw)); ret_vals[!is.na(raw)] <- ifelse(raw[!is.na(raw)] == 1, "Y", "N"); return(relevel(as.factor(ret_vals), ref="N"))
# #as.factor(paste0("B", raw))
# #as.factor(gsub(" ", "\\.", raw))
}
# glb_map_rsp_raw_to_var(tst <- c(NA, 0, 1)) # !_sp
# glb_map_rsp_raw_to_var(tst <- c(NA, 0, 2.99, 280.50, 1000.00)) # bid._sp
glb_map_rsp_var_to_raw <- function(var) { # NULL #
# return(var ^ 2.0)
# return(exp(var) - 1)
# return(10 ^ var) # bid._sp
# return(-log(var) * 2)
as.numeric(var) - 1
# #as.numeric(var)
# #gsub("\\.", " ", levels(var)[as.numeric(var)])
# c("<=50K", " >50K")[as.numeric(var)]
# #c(FALSE, TRUE)[as.numeric(var)]
}
# glb_map_rsp_var_to_raw(glb_map_rsp_raw_to_var(tst))
if ((glb_rsp_var != glb_rsp_var_raw) && is.null(glb_map_rsp_raw_to_var))
stop("glb_map_rsp_raw_to_var function expected")
glb_rsp_var_out <- paste0(glb_rsp_var, ".predict.") # mdl_id is appended later
# List info gathered for various columns
# <col_name>: <description>; <notes>
# description = The text description of the product provided by the seller.
# biddable = Whether this is an auction (biddable=1) or a sale with a fixed price (biddable=0).
# startprice = The start price (in US Dollars) for the auction (if biddable=1) or the sale price (if biddable=0).
# condition = The condition of the product (new, used, etc.)
# cellular = Whether the iPad has cellular connectivity (cellular=1) or not (cellular=0).
# carrier = The cellular carrier for which the iPad is equipped (if cellular=1); listed as "None" if cellular=0.
# color = The color of the iPad.
# storage = The iPad's storage capacity (in gigabytes).
# productline = The name of the product being sold.
# If multiple vars are parts of id, consider concatenating them to create one id var
# If glb_id_var == NULL, ".rownames <- row.names()" is the default
# Derive a numeric feature from id var
# User-specified exclusions
# List feats that shd be excluded due to known causation by prediction variable
glbFeatsExclude <- c(NULL
### !_sp
, "description", "descr.my", "productline"
, "startprice", "startprice.log10.predict", "sprice.predict.diff"
### bid0_sp
# , "description", "productline"
# , "sold", "startprice.log10.cut.fctr"
# # List feats that are linear combinations (alias in glm)
# , "D.terms.post.stem.n.log", "D.weight.sum"
# #, "prdl.descr.my.fctriPad4#1:.clusterid.fctr3" This does not work
# # if RFE is rated lower than Low.cor, list feats that are in RFE & not in Low.cor
# # min.RMSE.fit(RFE.X.glmnet)=0.1138888
# # D.chrs.n.log 61.12483
# # D.chrs.uppr.n.log 61.12483
# # D.ratio.wrds.stop.n.wrds.n 61.12483
# # D.terms.post.stop.n.log 61.12483
# # D.weight.post.stem.sum 61.12483
# # D.wrds.n.log 61.12483
# # D.wrds.stop.n.log 61.12483
# # D.wrds.unq.n.log 61.12483
# #, "startprice.dcm2.is9" # min.RMSE.fit(RFE.X.glmnet)=0.1141991 (up)
# , "D.wrds.stop.n.log" # min.RMSE.fit(RFE.X.glmnet)=0.1131232
### bid0_sp
### bid1_sp
# , "description", "productline"
# , "sold", "startprice.log10.cut.fctr"
### bid1_sp
)
glb_id_var <- c("UniqueID")
glb_category_var <- "prdl.my.fctr" # "prdl.descr.my.fctr" # "productline" # NULL
glb_drop_vars <- c(NULL) # or c("<col_name>")
glb_map_vars <- NULL # or c("<var1>", "<var2>")
glb_map_urls <- list();
# glb_map_urls[["<var1>"]] <- "<var1.url>"
glb_assign_pairs_lst <- NULL;
# glb_assign_pairs_lst[["<var1>"]] <- list(from=c(NA),
# to=c("NA.my"))
glb_assign_vars <- names(glb_assign_pairs_lst)
# Derived features
glbFeatsDerive <- NULL;
# Add logs of numerics that are not distributed normally -> do automatically ???
# Right skew: logp1; sqrt; ^ 1/3; logp1(logp1); log10; exp(-<feat>/constant)
# glbFeatsDerive[["prdline.my"]] <- list(
# mapfn=function(productline) { return(productline) }
# , args=c("productline"))
### bid._sp
# glbFeatsDerive[["startprice.log10.cut.fctr"]] <- list(
# mapfn=function(startprice.log10) { return(cut(startprice.log10, 3)) }
# , args=c("startprice.log10"))
### bid._sp
glbFeatsDerive[["sprice.root2"]] <- list(
mapfn = function(startprice) { return(startprice ^ (1/2)) }
, args = c("startprice"))
glbFeatsDerive[["sprice.log10"]] <- list(
mapfn = function(startprice) { return(log(startprice)) }
, args = c("startprice"))
glbFeatsDerive[["sprice.d20nexp"]] <- list(
mapfn = function(startprice) { return(exp(-startprice / 20)) }
, args = c("startprice"))
glbFeatsDerive[["sprice.predict.diff"]] <- list(
mapfn = function(startprice.log10.predict, startprice) {
spdiff <- (10 ^ startprice.log10.predict) - startprice;
return(spdiff) }
, args = c("startprice.log10.predict", "startprice"))
# glbFeatsDerive[["spdiff.root10"]] <- list(
# mapfn = function(sprice.predict.diff) {
# return(sign(sprice.predict.diff) * (abs(sprice.predict.diff) ^ (1/10))) }
# , args = c("sprice.predict.diff"))
glbFeatsDerive[["spdiff.cut.fctr"]] <- list(
mapfn = function(sprice.predict.diff) {
return(cut(sprice.predict.diff, c(-1000, -100, -10, -1, 0, 1, 10, 100, 1000))) }
, args = c("sprice.predict.diff"))
#glb_allobs_df[which(glb_post_stop_words_terms_mtrx_lst[[txt_var]][, subset(glb_post_stop_words_terms_df_lst[[txt_var]], term %in% c("conditionminimal"))$pos] > 0), "description"]
glbFeatsDerive[["descr.my"]] <- list(
mapfn = function(description) { mod_raw <- description;
### bid._sp
# # This is here because it does not work with txt_map_filename
mod_raw <- gsub(paste0(c("\n", "\211", "\235", "\317", "\333"), collapse = "|"), " ",
mod_raw)
# # This should go into txt_map_filename
# mod_raw <- gsub("\\.\\.", "\\. ", mod_raw);
# # Don't parse for "." because of ".com"; use customized gsub for that text
# mod_raw <- gsub("(\\w)(!|\\*|,|-|/)(\\w)", "\\1\\2 \\3", mod_raw);
#mod_raw <- grep(""", glb_allobs_df$descr.my, value = TRUE)
mod_raw <- gsub("&", "&", mod_raw);
mod_raw <- gsub("<", "<", mod_raw);
mod_raw <- gsub(">", ">", mod_raw);
mod_raw <- gsub("<br>", " ", mod_raw); # line break - add a count for it ???
mod_raw <- gsub(""", " ", mod_raw); # justification meta-character
mod_raw <- gsub("&#(0*)37;", "%", mod_raw);
mod_raw <- gsub("'", "'", mod_raw);
mod_raw <- gsub("([[:digit:]])\\.([[:digit:]])\\.([[:digit:]])",
"\\1point\\2\\point\\3", mod_raw);
mod_raw <- gsub("([[:digit:]])\\.([[:digit:]])", "\\1point\\2", mod_raw);
mod_raw <- gsub("([[:digit:]]),([[:digit:]])", "\\1\\2", mod_raw);
mod_raw <- gsub("\\b1st\\b", "first", mod_raw);
mod_raw <- gsub("\\b2nd\\b", "second", mod_raw);
mod_raw <- gsub("\\b3rd\\b", "third", mod_raw);
mod_raw <- gsub("\\b4th\\b", "fourth", mod_raw);
mod_raw <- gsub("\\.(com|COM)\\b", "dot\\1", mod_raw);
#
# # Modifications for this exercise only
# # Add dictionary to stemDocument e.g. stickers stemmed to sticker ???
# mod_raw <- gsub("8\\.25", "825", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\b10\\.SCREEN\\b", "10\\. SCREEN", mod_raw);
mod_raw <- gsub("\\b128 gb\\b", "128gb", mod_raw);
mod_raw <- gsub("\\b16G\\b", "16GB", mod_raw);
# mod_raw <- gsub(" 16 gig ", " 16gb ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" 16 gb ", " 16gb ", mod_raw, ignore.case=TRUE);
#
# mod_raw <- gsub("\\bAccounts\\b", "Account", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bactivated\\b", "activate", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" actuuly ", " actual ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\badaptor\\b", "adapter", mod_raw);
# mod_raw <- gsub("\\baffects\\b", "affect", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\bair-like\\b", "air -like", mod_raw);
mod_raw <- gsub("\\bALL-JUST\\b", "ALL -JUST", mod_raw);
mod_raw <- gsub("\\bApple's\\b", "Apple'", mod_raw);
# #mod_raw <- glb_allobs_df[c(1322), txt_var]; mod_raw
mod_raw <- gsub("\\bApple care\\b", "Applecare", mod_raw);
mod_raw <- gsub("\\bAT&T\\b", "ATT", mod_raw);
# mod_raw <- gsub(" bacK!wiped ", " bacK ! wiped ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" backplate", " back plate", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bbarley", "barely", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" bend ", " bent ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\b(B|b)(EST|est) (B|b)(UY|uy)\\b", "\\1\\2\\3\\4", mod_raw);
# mod_raw <- gsub(" black\\.Device ", " black \\. Device ", mod_raw,
# ignore.case=TRUE);
# mod_raw <- gsub("black\\),charger ", "black\\), charger ", mod_raw,
# ignore.case=TRUE);
# mod_raw <- gsub("\\bblacked\\b", "black", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bblemish\\b", "blemishes", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" blocks", " blocked", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" book ", " manual ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\b(B|b)(RAND|rand)( |-)(N|n)(EW|ew)\\b", "\\1\\2\\4\\5", mod_raw)
#mod_raw <- c("brand new", "BRAND new", "brand NEW", "BRAND NEW", "bbrand new", "brand-new", "brand newb")
mod_raw <- gsub("\\bbrokenCharger\\b", "broken Charger", mod_raw);
#
mod_raw <- gsub("\\bC-Major\\b", "C -Major", mod_raw)
# mod_raw <- gsub(" perfectlycord ", " perfectly cord ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bcord", "cable", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bcables\\.No\\b", "cables. No", mod_raw);
# mod_raw <- gsub("\\bcables\\b", "cable", mod_raw, ignore.case=TRUE);
#
mod_raw <- gsub("\\bcare\\.The\\b", "care\\. The", mod_raw);
# mod_raw <- gsub("\\b(cared|careful|CAREFUL)\\b", "care", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\b(cases|casing)\\b", "case", mod_raw, ignore.case=TRUE);
# #mod_raw <- glb_allobs_df[c(88,187,280,1040,1098), txt_var]; mod_raw
mod_raw <- gsub("\\bCase/Cover\\b", "Case/ Cover", mod_raw);
mod_raw <- gsub("\\bCasing/Screen\\b", "Casing/ Screen", mod_raw);
# mod_raw <- gsub(" carefully ", " careful ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bchargers\\b", "charger", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\bchip/crack\\b", "chip/ crack", mod_raw);
# mod_raw <- gsub("\\bchips\\b", "chip", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\bCLEAN\\!LIKE\\b", "CLEAN! LIKE", mod_raw);
# mod_raw <- gsub("\\bcleanly\\b", "clean", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\b(C|c)olor(.*)s\\b", "\\1olor", mod_raw, ignore.case=FALSE);
# #mod_raw <- glb_allobs_df[c(280,1411), txt_var]; mod_raw
mod_raw <- gsub("\\bColors,models\\b", "Colors ,models", mod_raw);
# mod_raw <- gsub("\\bcompletely\\b", "complete", mod_raw, ignore.case=FALSE);
# #mod_raw <- glb_allobs_df[c(178), txt_var]; mod_raw
#
mod_raw <- gsub("\\bCONDITION..CLEAN\\b", "CONDITION ..CLEAN", mod_raw);
mod_raw <- gsub("\\bcondition,comes\\b", "condition ,comes", mod_raw);
mod_raw <- gsub("\\bcondition\\.Device\\b", "condition .Device", mod_raw);
mod_raw <- gsub("\\bconditionHas\\b", "condition Has", mod_raw);
mod_raw <- gsub("\\bcondition\\.\\.\\.like\\b", "condition ...like", mod_raw);
mod_raw <- gsub("\\bcondition\\*Minimal\\b", "condition *Minimal", mod_raw);
mod_raw <- gsub("\\bCondition-Moderate\\b", "Condition -Moderate", mod_raw);
mod_raw <- gsub("\\bcondition\\.The\\b", "condition .The", mod_raw);
mod_raw <- gsub("\\bCONDITION\\.VERY\\b", "CONDITION .VERY", mod_raw);
# mod_raw <- gsub(" (conditon|condtion|contidion|conditions)", " condition", mod_raw,
# mod_raw <- gsub("\\b(conditon|condtion|contidion|conditions)\\b", "condition", mod_raw,
# ", "\\1\\. \\2", mod_raw,
# ignore.case=TRUE);
# mod_raw <- gsub("(condition)(Has)", "\\1\\. \\2", mod_raw);
#
# mod_raw <- gsub("\\bCONNECTED\\b", "CONNECT", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bconnects\\b", "connect", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" consist ", " consistent ", mod_raw, ignore.case=TRUE);
# #mod_raw <- glb_allobs_df[c(195, 379, 437), txt_var]; mod_raw
# mod_raw <- gsub("\\bCosmetics\\b", "Cosmetic", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\bCracked/Damaged\\b", "Cracked/ Damaged", mod_raw);
mod_raw <- gsub("\\bcracksNo\\b", "cracks No", mod_raw);
#
# mod_raw <- gsub("\\b(D|d)amaged\\b", "\\1amage", mod_raw, ignore.case=TRUE);
# #mod_raw <- glb_allobs_df[c(116, 1360), txt_var]; mod_raw
# mod_raw <- gsub("\\bDays\\b", "Day", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" DEFAULTING ", " DEFAULT ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bdefect(ive)*\\b", "defects", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" definitely ", " definite ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\b(D|d)ented\\b", "\\1ent", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" described", " describe", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" desciption", " description", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" devices", " device", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" Digi\\.", " Digitizer\\.", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\b(ding|dinged)\\b", "dings", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" display\\.New ", " display\\. New ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" displays", " display", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bdo( +)not\\b", "dont", mod_raw);
mod_raw <- gsub("\\b(D|d)oes( +)(N|n)(O|o)(T|t)\\b", "\\1oes\\3\\5", mod_raw);
# mod_raw <- gsub("\\b(drop|drops)\\b", "dropped", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\b(E|e)dge\\b", "\\1dges", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" effect ", " affect ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" Excellant ", " Excellent ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" excellently", " excellent", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" EUC ", " excellent used condition", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" feels ", " feel ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bfineiCloud\\b", "fine iCloud", mod_raw, ignore.case = FALSE);
# mod_raw <- gsub(" fine.Its ", " fine. Its ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bfix\\b", "fixed", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bflaws\\b", "flaw", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bflawlessly\\b", "flawless", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" Framing ", " Frame ", mod_raw, ignore.case=TRUE);
#
# mod_raw <- gsub(" functioanlity", " functionality", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bfunction(ing|ality)\\b", "functional", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" functional\\.Very little ", " functional\\. Very little ", mod_raw,
# ignore.case=TRUE);
mod_raw <- gsub("\\b([[:digit:]]+) (GB|gb)\\b", "\\1\\2", mod_raw);
mod_raw <- gsub("\\b([[:digit:]]+) gig\\b", "\\1gb", mod_raw);
mod_raw <- gsub("\\b(G|g)(EEK|eek) (S|s)(QUAD|quad)\\b", "\\1\\2\\3\\4", mod_raw);
# mod_raw <- gsub("^Gentle ", "Gently ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\(gray color", "\\(spacegray color", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" GREAT\\.SCreen ", " GREAT\\. SCreen ", mod_raw,
# ignore.case=TRUE);
mod_raw <- gsub("\\bGUARANTEES-IT\\b", "GUARANTEES -IT", mod_raw);
# mod_raw <- gsub("\\b(guarantee|guarantees)\\b", "guaranteed", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\ba handful of times\\b", "sparingly", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bhardly any\\b", "no", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bhardly ever used\\b", "sparingly used", mod_raw, ignore.case=TRUE);
#
mod_raw <- gsub("\\biCL0UD\\b", "iCLOUD", mod_raw);
mod_raw <- gsub("\\bI (CLOUD|cloud)\\b", "I\\1", mod_raw);
# mod_raw <- gsub("^iPad Black 3rd generation ", "iPad 3 Black ", mod_raw,
# ignore.case=TRUE);
mod_raw <- gsub("\\bIMEINo\\b", "IMEI No", mod_raw);
mod_raw <- gsub("\\bIMIE\\b", "IMEI", mod_raw);
# mod_raw <- gsub("\\bincluding\\b", "included", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" install\\. ", " installed\\. ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("inivisible", "invisible", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bI pad\\b", "Ipad", mod_raw);
mod_raw <- gsub("\\b(I|i)(P|p)(A|a)(D|d) (A|a)(I|i)(R|r)\\b", "\\1\\2\\3\\4\\5\\6\\7",
mod_raw);
mod_raw <- gsub("\\b(I|i)(P|p)(A|a)(D|d) (M|m)ini\\b", "\\1\\2\\3\\4\\5ini", mod_raw);
mod_raw <- gsub("\\b(I|i)(P|p)(A|a)(D|d) (M|m)inis\\b", "\\1\\2\\3\\4\\5ini", mod_raw);
mod_raw <- gsub("\\b(IPAD|Ipad|iPad|ipad) ([[:digit:]])\\b", "\\1\\2", mod_raw);
mod_raw <- gsub("\\b(Ipadair|iPadAir|ipadair) ([[:digit:]])\\b", "\\1\\2",
mod_raw);
mod_raw <- gsub("\\b(iPadMini|iPadmini) ([[:digit:]])\\b", "\\1\\2", mod_raw);
mod_raw <- gsub("\\bI Phone\\b", "IPhone", mod_raw);
mod_raw <- gsub("\\bIS-NO\\b", "IS -NO", mod_raw, ignore.case = FALSE)
#
# mod_raw <- gsub(" Keeped ", " Kept ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" knicks ", " nicks ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" lightening ", " lightning ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bLightning-to-USB\\b", "Lightning- to- USB", mod_raw);
mod_raw <- gsub("\\b(L|l)(IKE|ike)( |-)(N|n)(EW|ew)\\b", "\\1\\2\\4\\5", mod_raw);
#mod_raw <- c("like new", "LIKE new", "like NEW", "LIKE NEW", "blike new", "like-new", "like newb")
mod_raw <- gsub("\\bLIKENEW!ONE\\b", "LIKENEW! ONE", mod_raw);
# mod_raw <- gsub("\\b(lock|locks)\\b", "locked", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\blots\\b", "lot", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" manuals ", " manual ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" mars ", " marks ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" marks\\.Absolutely ", " marks\\. Absolutely ", mod_raw,
# ignore.case=TRUE);
# mod_raw <- gsub("\\bmarkings\\b", "marks", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bminis\\b", "mini", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" minimum", " minimal", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" MINT\\.wiped ", " MINT\\. wiped ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bmonth\\b", "months", mod_raw, ignore.case=TRUE);
# #mod_raw <- glb_allobs_df[c(1803), txt_var]; mod_raw
mod_raw <- gsub("\\bNew-Other\\b", "New -Other", mod_raw);
# mod_raw <- gsub(" NEW\\!(SCREEN|ONE) ", " NEW\\! \\1 ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" new looking$", " looks new", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" newer ", " new ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bnoted\\b", "note", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" oped ", " opened ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" opening", " opened", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" operated", " operational", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\botter box\\b", "otterbox", mod_raw);
#
# mod_raw <- gsub("\\bpackage\\b", "packaging", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bPACKAGE\\b", "PACKAGing", mod_raw, ignore.case=FALSE);
# #mod_raw <- glb_allobs_df[c(360, 1142), txt_var]; mod_raw
mod_raw <- gsub("\\bperfectlycord\\b", "perfectly cord", mod_raw);
# mod_raw <- gsub(" performance", " performs", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" personalized ", " personal ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bPhysically\\b", "Physical", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\b(picture|pictured)\\b", "pictures", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bPICTURE\\b", "PICTUREs", mod_raw, ignore.case=FALSE);
# #mod_raw <- glb_allobs_df[c(184, 892), txt_var]; mod_raw
# mod_raw <- gsub("\\b[P|p]ower(ed|ing|s)\\b", "\\1ower", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" pre- owned ", " used ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bprevious\\b", "previously", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bpreviously (owned|used)\\b", "used", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\b(P|p)reviously(.*)(O|o)wned\\b", "\\1reviously\\3wned\\2",
mod_raw);
mod_raw <- gsub("\\b(P|p)reviously(.*)(U|u)sed\\b", "\\1reviously\\3sed\\2", mod_raw);
# mod_raw <- gsub("\\bproblem\\b", "problems", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" products ", " product ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bprotected\\b", "protector", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bprotection\\b", "protector", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bPROTECTION\\b", "PROTECTOR", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\bREADiPad\\b", "READ iPad", mod_raw);
# mod_raw <- gsub(" re- assemble ", " reassemble ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bREFURB\\.", "REFURBished.", mod_raw);
# mod_raw <- gsub(" reponding", " respond", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bright-hand\\b", "right -hand", mod_raw);
# mod_raw <- gsub(" rotation ", " rotate ", mod_raw, ignore.case=TRUE);
#
# mod_raw <- gsub(" Sales ", " Sale ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bScratch-Free\\b", "Scratch- Free", mod_raw);
mod_raw <- gsub("\\bSCRATCHES/BLEMISHES...SCRATCHES\\b", "SCRATCHES/ BLEMISHES... SCRATCHES", mod_raw);
mod_raw <- gsub("\\bscratches,clear\\b", "scratches, clear", mod_raw);
mod_raw <- gsub("\\bScratches/Dent\\b", "Scratches/ Dent", mod_raw);
mod_raw <- gsub("\\bScratches/scuffs/nicks/scrapes\\b", "Scratches/ scuffs/ nicks/ scrapes", mod_raw);
# mod_raw <- gsub(" scratchs ", " scratches ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\b(scratchs|scratching)\\b", "scratches", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\bset up\\b", "setup", mod_raw);
# mod_raw <- gsub(" shipped| Shipment", " ship", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bshowing\\b", "shows", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\b(shrink|SHRINK) (wrap|WRAP)", "\\1\\2", mod_raw);
# mod_raw <- gsub("\\bshuts\\b", "shut", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" sides ", " side ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" skinned,", " skin,", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bSlightly\\b", "slight", mod_raw, ignore.case=FALSE);
mod_raw <- gsub("\\b(Space|space) (G|g)r(a|e)y\\b", "\\1\\2ray", mod_raw);
# mod_raw <- gsub(" spec ", " speck ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\bsomescratches\\b", "some scratches", mod_raw);
# mod_raw <- gsub(" Sticker ", " Stickers ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bstoring", "store", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("SWAPPA\\.COM", "SWAPPAsdotCOM", mod_raw, ignore.case=TRUE);
#
# mod_raw <- gsub(" T- Mobile", " TMobile", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\b(tear|TEAR)(s|S)\\b", "\\1", mod_raw, ignore.case=FALSE);
# #mod_raw <- glb_allobs_df[c(376), txt_var]; mod_raw
mod_raw <- gsub("\\b(touch|Touch|TOUCH) (screen|SCREEN)\\b", "\\1\\2", mod_raw);
# mod_raw <- gsub("\\bTURN\\b", "TURNS", mod_raw, ignore.case=FALSE);
#
mod_raw <- gsub("\\bUnlockedCracked\\b", "Unlocked Cracked", mod_raw);
# mod_raw <- gsub("\\bUNUSABLE\\b", "UNUSED", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\b(update|updates)\\b", "updated", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub("\\bupgrade\\b", "upgraded", mod_raw, ignore.case=FALSE);
# mod_raw <- gsub(" uppser ", " upper ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("use*Case\\b", "use *Case", mod_raw, ignore.case = FALSE)
# mod_raw <- gsub(" use\\.Scratches ", " use\\. Scratches ", mod_raw,
# ignore.case=TRUE);
#
# mod_raw <- gsub(" verify ", " verified ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" wear\\.Device ", " wear\\. Device ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub("\\bwears\\b", "\\wear", mod_raw, ignore.case=TRUE);
# #mod_raw <- glb_allobs_df[c(167, 272), txt_var]; mod_raw
# mod_raw <- gsub(" whats ", " what's ", mod_raw, ignore.case=TRUE);
# mod_raw <- gsub(" WiFi\\+4G ", " WiFi \\+ 4G ", mod_raw, ignore.case=TRUE);
mod_raw <- gsub("\\b(W|w)(IFI|ifi)( |-)(ONLY|only)\\b", "\\1\\2\\4", mod_raw);
mod_raw <- gsub("\\bwill( +)not\\b", "wont", mod_raw);
mod_raw <- gsub("\\byr\\b", "year", mod_raw);
mod_raw <- gsub("\\bZa(a|g)g Invisible(.*)Shield\\b", "ZaagInvisibleShield", mod_raw);
### bid._sp
return(mod_raw) }
, args = c("description"))
# To identify glb_id_vars with >=10 obs
#mod_raw <- glb_allobs_df[sel_obs(list(descr.my.contains="\\bdoes( +)not\\b")), glbFeatsText]
#mod_raw <- glb_allobs_df[sel_obs(list(descr.my.contains="\\bipad [[:digit:]]\\b")), glbFeatsText][01:10]
#mod_raw <- glb_allobs_df[sel_obs(list(descr.my.contains="pad mini")), glbFeatsText][11:20]
#mod_raw <- glb_allobs_df[sel_obs(list(descr.my.contains="pad mini")), glbFeatsText][21:30]
#mod_raw <- glb_allobs_df[sel_obs(list(descr.my.contains="pad mini")), glbFeatsText][31:40]
glbFeatsDerive[["prdl.my.fctr"]] <- list(
mapfn = function(productline, description) {
as.factor(gsub(" ", "", productline)) }
, args = c("productline"))
# glbFeatsDerive[["prdl.descr.my.fctr"]] <- list(
# mapfn = function(productline, description) {
# as.factor(paste(gsub(" ", "", productline),
# as.numeric(nchar(description) > 0),
# sep = "#")) }
# , args = c("productline", "description"))
#print(mycreate_sqlxtab_df(glb_allobs_df, c("prdl.descr.my.fctr", "sold")))
# mapfn=function(startprice) { return(scale(log(startprice))) }
# , args=c("startprice"))
# mapfn=function(Rasmussen) { return(ifelse(sign(Rasmussen) >= 0, 1, 0)) }
# mapfn=function(PropR) { return(as.factor(ifelse(PropR >= 0.5, "Y", "N"))) }
# mapfn=function(purpose) { return(relevel(as.factor(purpose), ref="all_other")) }
# mapfn=function(Week) { return(substr(Week, 1, 10)) }
# mapfn=function(raw) { tfr_raw <- as.character(cut(raw, 5));
# tfr_raw[is.na(tfr_raw)] <- "NA.my";
# return(as.factor(tfr_raw)) }
# , args=c("raw"))
# mapfn=function(PTS, oppPTS) { return(PTS - oppPTS) }
# , args=c("PTS", "oppPTS"))
# # If glb_allobs_df is not sorted in the desired manner
# mapfn=function(Week) { return(coredata(lag(zoo(orderBy(~Week, glb_allobs_df)$ILI), -2, na.pad=TRUE))) }
# mapfn=function(ILI) { return(coredata(lag(zoo(ILI), -2, na.pad=TRUE))) }
# mapfn=function(ILI.2.lag) { return(log(ILI.2.lag)) }
# glbFeatsDerive[["<txt_var>.niso8859.log"]] <- list(
# mapfn=function(<txt_var>) { match_lst <- gregexpr("&#[[:digit:]]{3};", <txt_var>)
# match_num_vctr <- unlist(lapply(match_lst,
# function(elem) length(elem)))
# return(log(1 + match_num_vctr)) }
# , args=c("<txt_var>"))
# mapfn=function(raw) { mod_raw <- raw;
# mod_raw <- gsub("&#[[:digit:]]{3};", " ", mod_raw);
# # Modifications for this exercise only
# mod_raw <- gsub("\\bgoodIn ", "good In", mod_raw);
# return(mod_raw)
# # Create user-specified pattern vectors
# #sum(mycount_pattern_occ("Metropolitan Diary:", glb_allobs_df$Abstract) > 0)
# if (txt_var %in% c("Snippet", "Abstract")) {
# txt_X_df[, paste0(txt_var_pfx, ".P.metropolitan.diary.colon")] <-
# as.integer(0 + mycount_pattern_occ("Metropolitan Diary:",
# glb_allobs_df[, txt_var]))
#summary(glb_allobs_df[ ,grep("P.on.this.day", names(glb_allobs_df), value=TRUE)])
# glb_allobs_df$<descriptor>.my <-
# plyr::revalue(glb_allobs_df$<descriptor>.my, c(
# "ABANDONED BUILDING" = "OTHER",
# "##" = "##"
# ))
# print(<descriptor>_freq_df <- mycreate_sqlxtab_df(glb_allobs_df, c("<descriptor>.my")))
# # print(dplyr::filter(<descriptor>_freq_df, grepl("(MEDICAL|DENTAL|OFFICE)", <descriptor>.my)))
# # print(dplyr::filter(dplyr::select(glb_allobs_df, -<var.zoo>),
# # grepl("STORE", <descriptor>.my)))
# glbFeatsDerive[["<var1>"]] <- glbFeatsDerive[["<var2>"]]
glb_derive_vars <- names(glbFeatsDerive)
# tst <- "descr.my"; args_lst <- NULL; for (arg in glbFeatsDerive[[tst]]$args) args_lst[[arg]] <- glb_allobs_df[, arg]; print(head(args_lst[[arg]])); print(head(drv_vals <- do.call(glbFeatsDerive[[tst]]$mapfn, args_lst)));
# print(which_ix <- which(args_lst[[arg]] == 0.75)); print(drv_vals[which_ix]);
glb_date_vars <- NULL # or c("<date_var>")
glb_date_fmts <- list(); #glb_date_fmts[["<date_var>"]] <- "%m/%e/%y"
glb_date_tzs <- list(); #glb_date_tzs[["<date_var>"]] <- "America/New_York"
#grep("America/New", OlsonNames(), value=TRUE)
glbFeatsPrice <- c("startprice") #: bid._sp # NULL or c("<price_var>")
# Text Processing Step: custom modifications not present in txt_munge
glbFeatsText <- c("descr.my") # NULL #
Sys.setlocale("LC_ALL", "C") # For english
## [1] "C/C/C/C/C/en_US.UTF-8"
# Text Processing Step: universal modifications
glb_txt_munge_filenames_pfx <- "ebay_mytxt_"
# Text Processing Step: tolower
# Text Processing Step: removePunctuation (use custom transformer to replace with space ???)
# Text Processing Step: removeWords
glb_txt_stop_words <- list()
# Remember to use unstemmed words; Check stemming of "significant" words - any stopped words that should be stemmed with them ?
if (!is.null(glbFeatsText)) {
require(tm)
glb_txt_stop_words[["descr.my"]] <- sort(c(NULL
### bid._sp
# , setdiff(removePunctuation(stopwords("english")), "no")
# ,"ac"
# # cor.y.train == NA
# ,unlist(strsplit(paste(c(NULL
# ,"128gb,1st,32gb,3g,64gb,90,acceptable,activation,amount,average,bad,buttons,buy,came,camera,can,care,carrier"
# #,casing
# ,"certified,charge,charging,cleaned,clear,come,components,contain,corner,correctly,covered,customer,earbuds"
# ,"engraved,engraving,engravement" # somehow didn't show up in the cor.y.train == NA list
# ,"entire,except,fair,features,feel,fine,generation,get,gift,got,heavily,heavy,however,imei,include,inspected,invisible,invisibleshield"
# ,"ipad,ipads"
# ,"issues"
# #,items,
# ,"keyboard,lightning,listing,little,looks,lower"
# ,"manufacture,manufacturer"# somehow didn't show up in the cor.y.train == NA list
# ,"meaning,model,near,need,needs,nicks,opened,operational,otherwise"
# ,"person,personal"# somehow didn't show up in the cor.y.train == NA list
# ,"phone,photos,pics,plastic,port,professionally"
# ,"purchased,purchasing"# somehow didn't show up in the cor.y.train == NA list
# ,"quality,questions,read,ready"
# ,"receive,received"# somehow didn't show up in the cor.y.train == NA list
# ,"removed,replaced,retail,return,returns,runs"
# #,scratch,
# ,"scuffing,sealed,sell,seller,selling,shape,ship,shown,silver,since,sold,sound,spacegray,stock,sync,tablet,taken,technician,tests,third,time,touch,units,unlocked,week,wifi,without"
# ,"wrap" # somehow didn't show up in the cor.y.train == NA list
# ,"zagg"
# ), collapse=",")
# , "[,]")) #err.abs.fit.sum=26.869473 w/o items,scratch
#
# # cor.y.abs is low
# #,"always","comes","grade","moderate","protector"
### bid._sp
### !_sp
# freq == 1; keep "gold"
,"09","17","28","34","360","5c","5point1point1","511","6428"
,"7point9","7point9in","79in"
,"8point5","8point25","82510"
,"910","9510","9point7","9point75","97510","99"
,"a1314","a1430","abused","accept","accounts","across","actuuly","add","advised"
,"affects","am","ans","antenna","anti","anyone","anything","applied","applying"
,"area","arizona","att","attached"
,"backlight","backlit","backplate","barley"
,"beetle","beginning","bend","besides","between"
,"bidder","binder","bonus","book","boot","bound","brick","broke","bruises"
,"buyers"
,"capacity","causing","cherished","chrome","classes","closely"
,"condtion","conditon","confidence","considerable","consist","consistent"
,"consumer","contents","contidion","control"
,"couldnt"
,"cream","customize","cuts"
,"daily","date","daughter"
,"deactivated","decent","deep","defender","defense","degree","demonstration"
,"depicted","depress","desciption"
,"difficulty","digi","disclaimer","discoloration","distressed","divider"
,"dlxnqat9g5wt","dock","documents","done","durable","dust","duty"
,"each","effect","either","emblem","erased","esi","essentially","etch","etched"
,"euc","every","exact","exhibition","expires"
,"facing","faded","faint","february","film","final","five","flickers"
,"folding","forgot","forwarders"
,"freezes","freight"
,"functioanlity"
,"games","generic","genuine","glitter","goes","gray","grey","guide"
,"hairline","half","handstand","hdmi","here","high","higher"
,"hold","hole","hospital"
,"immaculate","impact"
,"inivisible","instead"
,"intended","interest","interior","international","internationally"
,"into","intro"
,"ios","isnt","itself","ive"
,"jack","july"
,"keyword","kids","kind","knicks"
,"l","largest","last","late","length","let","letters","level"
,"lifting","limited","literally","literature"
,"local","logic","long","longer","looping","loose","loss","lost"
,"mars"
,"mb292ll","mc707ll","mc916ll","mc991ll","md789ll","mf432ll"
,"mic","middle","mind","minimum","mixed"
,"myself"
,"neither","newer","non","none","nonviewing","nor","november"
,"occasional","oem","often","online","oped","outside","over"
,"padfolio","pairing","paperwork","past","period","pet","piece"
,"plate","played","plug"
,"poor","portfolio","portion","pouch"
,"preinstalled","pressure","price","proof","provided"
,"ranging","rather"
,"real","realized","reassemble","reboot","receipt","recently","red"
,"reflected","refunds","relisting","remote","repeat","reponding"
,"required"
,"reserve","reshaped","residue","respond","restarts","result"
,"reviewed"
,"ringer","roughly","rubber"
,"said","same","school","scratchs","screeb"
,"seamlessly","seem","seen","semi","send","september","serious"
,"shell","shipment","short","showroom"
,"sighs","site","size"
,"sleeve","slice"
,"smoke","smooth","smudge","sn"
,"softer","software","somewhat","soon"
,"space","sparingly","sparkiling","spec","special","speck","speed","speigen"
,"stains","standup","start","status","stopped","strictly"
,"subtle","sustained"
,"swappadotcom","swiped","swivel"
,"take","technical","tempered","texture"
,"thank","then","therefore","think","those","though"
,"toddler","topback","totally","touchy","toys"
,"tried","turn","typical"
,"u","university","unknown","untouched","uppser"
,"valid","vary","viewing","virtually"
,"want","wavy","website","whole","why","winning","worn"
,"zaag","zero","zombie","zoogue"
# cor.y.train == NA
,"account","applecare","download","expect","fourth","greeting","maybe"
,"plus","purposes","significant","title","volume"
# chisq.pval high (e.g. == 1);
# keep
# carrier.fctr: "sprint", "verizon"
# cellular.fctr: "3g", "4g",wifion
# color.fctr: "gold"
# prdl.descr.my.fctr:
# storage.fctr: "128gb"
,"2016"
,"acceptable","actual","amount","awesome"
,"beautiful","before","bent","best","blocked","blocks"
,"capable","converted"
,"find"
,"gift"
,"handled","handling","headphone"
,"im","information"
,"love"
,"march","meaning","means","medium","money"
,"necessary"
,"offer","once"
,"page","product","products"
,"second","seconds","should","silver","skin","skinned"
,"tape","thoroughly","twice"
,"user"
,"way","which"
# nzv.freqRatio high (e.g. >= glb_nzv_freqCut);
# keep
# carrier.fctr: "sprint", "tmobile", "verizon"
# cellular.fctr: "3g", "4g",wifionly
# color.fctr: "gold",spacegray
# condition.fctr:
# levels:
# "Used", "For parts or not working", "Manufacturer refurbished", "New", "New other (see details)", "Seller refurbished"
# stemmed tokens:
# manufactur
# prdl.descr.my.fctr: "ipad1",ipad3,ipad4,ipadair2,ipadmini2
# storage.fctr: "128gb"
,"14","2015","3","30","4","5","6","7","8","9","90","9point5","9point7in"
,"a1432","able","about","ac","activate","activated","activation"
,"additional","adult"
,"after"
,"ago"
,"air"
,"along","already","also"
,"another","answer"
,"appears","approved","april"
,"around"
,"asis","associated"
,"auction"
,"backside","bad","battery","because","bestbuy","bezel","blue","bluetooth"
,"board","body","both","bottom","bought"
,"bright"
,"bumps","buy","buying"
,"came","camera","cameras","cannot","cant","card","carrier","cellular"
,"changed","changing","check","chip","chips"
,"color","colors","company","complete","completely","components"
,"connect","connected","connector","connects","contain","contains"
,"corporate","correctly","couple"
,"customer"
,"data"
,"dead"
,"default","defaulting","definite","definitely"
,"delivered","demo","describe","described","details"
,"do","does","dont","down"
,"drop","dropped","drops"
,"due"
,"earbuds","easily","ebay","else","engraved","engravement","engraving","entire"
,"etc"
,"even","ever","everything"
,"except","exterior","extremely"
,"fantastic","fast","faulty","features","feel","feels","fine","fix","fixed"
,"flaw","flaws"
,"frame","framing"
,"geeksquad","general","get","got","guarantee","guaranteed","guarantees"
,"hand","handful","handset","happened","hard","hardly","heavy","home","however"
,"id","if","images","imperfections"
,"inside","inspected","install","installed","instructions","invisible"
,"iphone","iphones"
,"issue","issues"
,"itunes"
,"keyboard","know","known"
,"latest","lcd","least","leather","less"
,"life","lightening","lightning","like","line","lining"
,"liquid","liquidation"
,"logo","lot","lots","lower"
,"magnetic","make","manual","manuals","many","me","memory","missing"
,"model","models","moderate","more","most","mostly"
,"multiple","musthave"
,"my"
,"name","network","networks","nice","nick","nicks"
,"nonfunctioning","noticeable","now"
,"off","old","operated","operational","otherwise","outer","own","owned"
,"party","passcode","password"
,"performance","performs","person","personal","personalized"
,"phone","physical","physically"
,"pin","pixels"
,"placed","places"
,"port","possible"
,"pretty","pristine","problem","problems","properly"
,"purchase","purchased","purchasing"
,"quality","question","questions"
,"rarely"
,"reactivated","really","rear","receive","received","regular","removed"
,"repair","retail","retina"
,"rotate","rotation"
,"running","runs"
,"s","sale","sales","sameday","scrapes","scroll","setup","several"
,"shattered","shrinkwrap","shut","shuts"
,"side","sides","sim","single"
,"so","something","sometimes","sound"
,"speaker","specifics","spent"
,"sticker","stickers","storage","store","storing","stuck","stylus"
,"super","supply","sure","surface"
,"sync"
,"taken","technician","than","these","they","thin","third","three"
,"till","tiny"
,"too","took","touch","touching","touchscreen"
,"turns"
,"two"
,"unable","under","unnoticeable","unopened","unsealed","until"
,"unused","unusable"
,"up","update","updated","updates","upgrade","upgraded","upper"
,"usage","usually"
,"verified","verify"
,"wall","water","we","week","weeks", "were","what","whats","where","while"
,"wiped","without"
,"would"
,"wrap","wrapped","wrong"
,"x"
,"year","years","your"
,"zagg","zaaginvisibleshield"
#
### !_sp
))
}
## Loading required package: tm
## Loading required package: NLP
##
## Attaching package: 'NLP'
##
## The following object is masked from 'package:ggplot2':
##
## annotate
#orderBy(~term, glb_post_stem_words_terms_df_lst[[txt_var]][grep("^2", glb_post_stem_words_terms_df_lst[[txt_var]]$term), ])
#glb_allobs_df[glb_post_stem_words_terms_mtrx_lst[[txt_var]][, 6] > 0, glbFeatsText]
# To identify terms with a specific freq
#paste0(sort(subset(glb_post_stop_words_terms_df_lst[[txt_var]], freq == 1)$term), collapse = ",")
#paste0(sort(subset(glb_post_stem_words_terms_df_lst[[txt_var]], freq <= 2)$term), collapse = ",")
# To identify terms with a specific freq &
# are not stemmed together later OR is value of color.fctr (e.g. gold)
#paste0(sort(subset(glb_post_stop_words_terms_df_lst[[txt_var]], (freq == 1) & !(term %in% c("blacked","blemish","blocked","blocks","buying","cables","careful","carefully","changed","changing","chargers","cleanly","cleared","connect","connects","connected","contains","cosmetics","default","defaulting","defective","definitely","describe","described","devices","displays","drop","drops","engravement","excellant","excellently","feels","fix","flawlessly","frame","framing","gentle","gold","guarantee","guarantees","handled","handling","having","install","iphone","iphones","keeped","keeps","known","lights","line","lining","liquid","liquidation","looking","lots","manuals","manufacture","minis","most","mostly","network","networks","noted","opening","operated","performance","performs","person","personalized","photograph","physically","placed","places","powering","pre","previously","products","protection","purchasing","returned","rotate","rotation","running","sales","second","seconds","shipped","shuts","sides","skin","skinned","sticker","storing","thats","theres","touching","unusable","update","updates","upgrade","weeks","wrapped","verified","verify") ))$term), collapse = ",")
#print(subset(glb_post_stem_words_terms_df_lst[[txt_var]], (freq <= 2)))
#glb_allobs_df[which(terms_mtrx[, 229] > 0), glbFeatsText]
# To identify terms with cor.y == NA
#orderBy(~-freq+term, subset(glb_post_stop_words_terms_df_lst[[txt_var]], is.na(cor.y)))
#paste(sort(subset(glb_post_stop_words_terms_df_lst[[txt_var]], is.na(cor.y))[, "term"]), collapse=",")
#orderBy(~-freq+term, subset(glb_post_stem_words_terms_df_lst[[txt_var]], is.na(cor.y)))
# To identify terms with low cor.y.abs
#head(orderBy(~cor.y.abs+freq+term, subset(glb_post_stem_words_terms_df_lst[[txt_var]], !is.na(cor.y))), 5)
# To identify terms with high chisq.pval
#subset(glb_post_stem_words_terms_df_lst[[txt_var]], chisq.pval > 0.99)
#paste0(sort(subset(glb_post_stem_words_terms_df_lst[[txt_var]], (chisq.pval > 0.99) & (freq <= 10))$term), collapse=",")
#paste0(sort(subset(glb_post_stem_words_terms_df_lst[[txt_var]], (chisq.pval > 0.9))$term), collapse=",")
#head(orderBy(~-chisq.pval+freq+term, glb_post_stem_words_terms_df_lst[[txt_var]]), 5)
#glb_allobs_df[glb_post_stem_words_terms_mtrx_lst[[txt_var]][, 68] > 0, glbFeatsText]
#orderBy(~term, glb_post_stem_words_terms_df_lst[[txt_var]][grep("^m", glb_post_stem_words_terms_df_lst[[txt_var]]$term), ])
# To identify terms with high nzv.freqRatio
#summary(glb_post_stem_words_terms_df_lst[[txt_var]]$nzv.freqRatio)
#paste0(sort(setdiff(subset(glb_post_stem_words_terms_df_lst[[txt_var]], (nzv.freqRatio >= glb_nzv_freqCut) & (freq < 10) & (chisq.pval >= 0.05))$term, c( "128gb","3g","4g","gold","ipad1","ipad3","ipad4","ipadair2","ipadmini2","manufactur","spacegray","sprint","tmobil","verizon","wifion"))), collapse=",")
# To identify obs with a txt term
#tail(orderBy(~-freq+term, glb_post_stop_words_terms_df_lst[[txt_var]]), 20)
#mydsp_obs(list(descr.my.contains="non"), cols=c("color", "carrier", "cellular", "storage"))
#grep("ever", dimnames(terms_stop_mtrx)$Terms)
#which(terms_stop_mtrx[, grep("ipad", dimnames(terms_stop_mtrx)$Terms)] > 0)
#glb_allobs_df[which(terms_stop_mtrx[, grep("16", dimnames(terms_stop_mtrx)$Terms)[1]] > 0), c(glb_category_var, "storage", txt_var)]
# To identify whether terms shd be synonyms
#orderBy(~term, glb_post_stop_words_terms_df_lst[[txt_var]][grep("^moder", glb_post_stop_words_terms_df_lst[[txt_var]]$term), ])
# term_row_df <- glb_post_stop_words_terms_df_lst[[txt_var]][grep("^came$", glb_post_stop_words_terms_df_lst[[txt_var]]$term), ]
#
# cor(glb_post_stop_words_terms_mtrx_lst[[txt_var]][glb_allobs_df$.lcn == "Fit", term_row_df$pos], glb_trnobs_df[, glb_rsp_var], use="pairwise.complete.obs")
# To identify which stopped words are "close" to a txt term
#sort(cluster_vars)
# Text Processing Step: stemDocument
# To identify stemmed txt terms
#glb_post_stop_words_terms_df_lst[[txt_var]][grep("condit", glb_post_stop_words_terms_df_lst[[txt_var]]$term), ]
#orderBy(~term, glb_post_stem_words_terms_df_lst[[txt_var]][grep("^con", glb_post_stem_words_terms_df_lst[[txt_var]]$term), ])
#glb_allobs_df[which(terms_stem_mtrx[, grep("use", dimnames(terms_stem_mtrx)$Terms)[[1]]] > 0), c(glb_id_var, "productline", txt_var)]
#glb_allobs_df[which(TfIdf_stem_mtrx[, 191] > 0), c(glb_id_var, glb_category_var, txt_var)]
#which(glb_allobs_df$UniqueID %in% c(11915, 11926, 12198))
# Text Processing Step: mycombineSynonyms
# To identify which terms are associated with not -> combine "could not" & "couldn't"
#findAssocs(glb_full_DTM_lst[[txt_var]], "not", 0.05)
# To identify which synonyms should be combined
#orderBy(~term, glb_post_stem_words_terms_df_lst[[txt_var]][grep("^c", glb_post_stem_words_terms_df_lst[[txt_var]]$term), ])
chk_comb_cor <- function(syn_lst) {
# cor(terms_stem_mtrx[glb_allobs_df$.src == "Train", grep("^(damag|dent|ding)$", dimnames(terms_stem_mtrx)[[2]])], glb_trnobs_df[, glb_rsp_var], use="pairwise.complete.obs")
print(subset(glb_post_stem_words_terms_df_lst[[txt_var]], term %in% syn_lst$syns))
print(subset(get_corpus_terms(tm_map(glb_txt_corpus_lst[[txt_var]], mycombineSynonyms, list(syn_lst), lazy=FALSE)), term == syn_lst$word))
# cor(terms_stop_mtrx[glb_allobs_df$.src == "Train", grep("^(damage|dent|ding)$", dimnames(terms_stop_mtrx)[[2]])], glb_trnobs_df[, glb_rsp_var], use="pairwise.complete.obs")
# cor(rowSums(terms_stop_mtrx[glb_allobs_df$.src == "Train", grep("^(damage|dent|ding)$", dimnames(terms_stop_mtrx)[[2]])]), glb_trnobs_df[, glb_rsp_var], use="pairwise.complete.obs")
}
#chk_comb_cor(syn_lst=list(word="cabl", syns=c("cabl", "cord")))
#chk_comb_cor(syn_lst=list(word="damag", syns=c("damag", "dent", "ding")))
#chk_comb_cor(syn_lst=list(word="dent", syns=c("dent", "ding")))
#chk_comb_cor(syn_lst=list(word="use", syns=c("use", "usag")))
glb_txt_synonyms <- list()
glb_txt_synonyms[["descr.my"]] <- #NULL : default
list(NULL
### bid._sp
# , list(word="cabl", syns=c("cabl", "cord"))#err.abs.fit.sum=26.863220
# # , list(word="charger", syns=c("charg", "charger"))
# # , list(word="come", syns=c("came", "come"))
# # , list(word="dent", syns=c("dent", "ding"))
# # , list(word="damag", syns=c(#"bad", "blemish", "broken", "crack",
# # #defect has +ve cor, others have -ve cor
# # "damag", "dent", "ding",
# # #"scratch", "scuff", "tear", "wear",
# # NULL))
# # # combining damag with defect & dent results in higher err.abs.fit.sum=26.885899
# # # combining defect with dent in higher err.abs.fit.sum=26.894976
# # , list(word="defect", syns=c(#"bad", "blemish", "broken", "crack",
# # "defect", "dent", #"ding", ding has -ve cor, others have +ve cor
# # #"scratch", "scuff", "tear", "wear",
# # NULL))
# #, list(word="new", syns=c("brand")) ???
# # , list(word="scuff", syns=c("scuf", "scuff"))
# # , list(word="show", syns=c("show", "shown"))
# # , list(word="tablet", syns=c("tab", "tablet"))
### bid._sp
### !_sp
,list(word = "cabl", syns = c("cabl", "cord"))
,list(word = "cant", syns = c("cant", "cannot"))
,list(word = "descript", syns = c("descript", "discript"))
,list(word = "generat", syns = c("gen", "generat"))
,list(word = "ipadmini", syns = c("ipadmini", "mini"))
,list(word = "kept", syns = c("keep", "kept"))
,list(word = "know", syns = c("know", "known"))
,list(word = "lightn", syns = c("lighten", "lightn"))
,list(word = "passcod", syns = c("passcod", "password"))
,list(word = "photo", syns = c("photo", "photograph", "photos", "pic", "pictur"))
,list(word = "preown", syns = c("pre", "preown", "previous",
"previouslyus", "previouslyown"))
,list(word = "protector", syns = c("protect", "protector"))
,list(word = "scuff", syns = c("scuf", "scuff"))
,list(word = "tablet", syns = c("tab", "tablet"))
,list(word = "with", syns = c("w", "with"))
,list(word = "zagg", syns = c("zagg", "zaaginvisibleshield"))
### !_sp
)
if (length(glb_txt_synonyms) > 0) names(glb_txt_synonyms) <- glbFeatsText
# Text Processing Step: filterTerms
if (!is.null(glbFeatsText)) {
require(tm)
# options include: weightTf, myweightTflog1p, myweightTfsqrt, weightTfIdf, weightBM25
glb_txt_terms_control <- list(weighting = weightTfIdf # : default
# termFreq selection criteria across obs: default: list(global=c(1, Inf))
, bounds = list(global = c(1, Inf)) # bid._sp: list(global=c(3, Inf))
# default: c(3, Inf)
, wordLengths = c(1, Inf) # bid._sp: c(2, Inf)
)
}
glb_txt_cor_var <- glb_rsp_var # bid._sp: "startprice.log10.cut.fctr" # default: glb_rsp_var
# select one from c("union.top.val.cor", "top.cor", default: "top.val", "top.chisq", "sparse")
glbFeatsTextFilter <- "top.chisq"
glbFeatsTextTermsMax <- c(15) # bid._sp: c(20) # c(50) in (old) !_sp # default: rep(10, length(glbFeatsText))
names(glbFeatsTextTermsMax) <- glbFeatsText
# Text Processing Step: extractAssoc
glbFeatsTextAssocCor <- c(1.0) #bid._sp: c(0.4) #(old) !_sp: 0.2 #default: rep(1, length(glbFeatsText))
names(glbFeatsTextAssocCor) <- glbFeatsText
# Text Processing Step: extractPatterns (ngrams)
# Potential Enhancements
# "Seller refurbished" -> D.P.refurbished.seller ?
# "Like new" -> D.P.new.like ?
# "No scratches" -> D.P.scratch.no ?
glb_important_terms <- list()
# Remember to use stemmed terms
# Have to set it even if it is not used
glb_sprs_thresholds <- c(0.950) # Generates 8 terms
# Properties:
# numrows(glb_feats_df) << numrows(glb_fitobs_df)
# Select terms that appear in at least 0.2 * O(FP/FN(glb_OOBobs_df))
# numrows(glb_OOBobs_df) = 1.1 * numrows(glb_newobs_df)
names(glb_sprs_thresholds) <- glbFeatsText
if (glb_rsp_var_raw != glb_rsp_var)
glbFeatsExclude <- union(glbFeatsExclude,
glb_rsp_var_raw)
glbFctrMaxUniqVals <- 23 # default: 20
glb_impute_na_data <- FALSE # or TRUE
glb_mice_complete.seed <- 144 # or any integer
glb_cluster <- TRUE # bid._sp:TRUE # default:FALSE
glb_cluster.seed <- 189 # or any integer
### !_sp
glb_cluster_entropy_var <- glb_rsp_var # c(glb_rsp_var, as.factor(cut(glb_rsp_var, 3)), default: NULL)
glbFeatsTextClusterVarsExclude <- FALSE # default FALSE
### bid._sp
# glb_cluster_entropy_var <- "sold" #"startprice.log10.cut.fctr"
# glbFeatsTextClusterVarsExclude <- TRUE # default FALSE
### bid._sp
glb_interaction_only_feats_lst <- list()
### bid._sp
glb_interaction_only_feats_lst[["carrier.fctr"]] <- "cellular.fctr"
glb_nzv_freqCut <- 19 # 19 is caret default
glb_nzv_uniqueCut <- 10 # 4 : bid._sp # 10 : caret::default
### bid._sp
glbRFESizes <- list()
# c(106, 111, 116, 120, 128) # bid0_sp
# c(8, 11, 16, 21, 32, 64, 128) # bid1_sp
# c(47,48,49,50,51,52,53,54) # no_sp
### bid1_nosp
# rfFuncs
#c(4, 8, 16, 32, 64, 82) # Accuracy@82 = 0.8317
#c(4, 8, 16, 32, 64, 73, 82, 91) # Accuracy@82 = 0.8325
#c(16, 32, 64, 73, 76, 78, 80, 81, 82, 83) # Accuracy@82 = 0.8333
# ldaFuncs
#c(8, 16, 32, 64, 67) # Accuracy@16 = 0.8519
#c(8, 12, 16, 20, 32, 64, 67) # Accuracy@12 = 0.8519
#c(8, 10, 12, 13, 14, 15, 16, 20, 67) # Accuracy@14 = 0.8526
### bid1_nosp
### bid0_nosp
#c(4, 8, 12, 16, 20, 32, 64, 87) # Accuracy@16 = 0.7877
#c(12, 14, 15, 16, 17, 18, 20, 87) # Accuracy@17 = 0.7894
#c(8, 12, 13, 14, 15, 16, 18, 20, 87) # Accuracy@14 = 0.7900 before removing outliers
#c(8, 12, 13, 14, 15, 16, 18, 20, 87) # Accuracy@15 = 0.7868
### bid0_nosp
#c(4, 8, 16, 32, 64, 66, 67, 68) # Accuracy@67/68 = 0.8271
#c(4, 8, 16, 32, 64, 66, 67, 68, 70) # Accuracy@70 = 0.8258
#c(4, 8, 16, 32, 64) # Accuracy@70 = 0.8258
#c(4, 8, 16, 32, 64, 67) # Accuracy@70 = 0.8258
glbRFESizes[["RFE.X"]] <- c(4, 8, 16, 32, 64, 67, 68, 69) # Accuracy@69/70 = 0.8258
glbRFESizes[["Final"]] <-
#c(4, 8, 16, 32, 64) # Accuracy@71 = 0.8250
#c(4, 8, 16, 32, 64, 66) # Accuracy@71 = 0.8250
#c(4, 8, 16, 32, 64, 66, 69) # Accuracy@71 = 0.8250
c(4, 8, 16, 32, 64, 66, 69, 70) # Accuracy@70/71 = 0.8250
# outliers identified by car::outlierTest
glbObsFitOutliers <- list()
### bid._sp
# c(NULL # default: NULL
# biddable == 0 & 1; err.abs.fit.sum=423.55172
# # outliers
# , 10813 # next 665 w/ rstudent=-5.091080; biddable=3.263257; err.abs.fit.sum=418.598755
# , 10666 # next 1727 w/ rstudent=-5.163517; biddable=4.293465; err.abs.fit.sum=414.093609
# , 11736 # next 780 w/ rstudent=-5.181343; biddable=5.670483; err.abs.fit.sum=401.817992
# # old biddable importance above this
# , 10781 # next 1323 w/ rstudent=-5.151062; biddable=13.30602; err.abs.fit.sum=396.393721
# #, 10091 # next 91 w/ rstudent=-4.444452; biddable=; err.abs.fit.sum=402.673715 (up)
# #, 10166 # next 560 w/ rstudent=-5.006795; biddable=; err.abs.fit.sum=401.759324 (up)
# #, 10281 # next 281 w/ rstudent=-4.245087; biddable=; err.abs.fit.sum=401.316926 (up)
# #, 10285 # next 285 w/ rstudent=-4.483190; biddable=; err.abs.fit.sum=402.608936 (up)
# #, 10446 # next 445 w/ rstudent=-4.663418; biddable=; err.abs.fit.sum=403.074523 (up)
# #, 10542 # next 1323 w/ rstudent=-5.214517; biddable=; err.abs.fit.sum=401.04205 (up)
# #, 10543 # next 1323 w/ rstudent=-5.214517; biddable=; err.abs.fit.sum=401.04205 (up)
# #, 10561 # next 542 w/ rstudent=-4.736154; biddable=; err.abs.fit.sum=401.56198 (up)
# #, 10631 # next 166 w/ rstudent=-5.073048; biddable=; err.abs.fit.sum=401.556788 (up)
# #, 11330 # next 630 w/ rstudent=-5.117659; biddable=; err.abs.fit.sum=401.732597 (up)
# , 10091, 10166, 10281, 10285, 10446, 10542, 10543, 10561, 10631, 11330
# # biddable=18.93923; err.abs.fit.sum=359.388769
# , 10330 #biddable=19.06084; err.abs.fit.sum=355.895702
# , 10402 #biddable= 0.0 ; err.abs.fit.sum=351.315181
# , 10438 #biddable= 0.0 ; err.abs.fit.sum=347.821527
# , 10624 #biddable= 0.0 ; err.abs.fit.sum=343.724904
# , 10659 #biddable= 0.0 ; err.abs.fit.sum=331.873603
# , 11323 #biddable=10.45901; err.abs.fit.sum=324.929562
# , 11422 #biddable= 0.0 ; err.abs.fit.sum=334.839805 (up)
# biddable == 0; err.abs.fit.sum=26.713317
# , 11448 # outliers; next is 858 w/ rstudent=-5.855132; err.abs.fit.sum=24.212800
# , 11583 # outliers; next is 856 w/ rstudent=-4.792849; err.abs.fit.sum=22.164035
# , 11581 # outliers; next is 743 w/ rstudent=-4.005054; err.abs.fit.sum=18.842901
# , 10837 # outliers; next is 336 w/ rstudent=-5.279215; err.abs.fit.sum=18.124560
# , 11442 # outliers; next is 904 w/ rstudent=-4.474844; err.abs.fit.sum=15.533211
# , 11697 # outliers; next is 874 w/ rstudent=-3.678664; err.abs.fit.sum=13.829375
# , 10799 # .hatvalues == 1; total 8; iPadmini#1; err.abs.fit.sum=13.807283
# , 10017 # .hatvalues == 1; total 7; iPad3#1; err.abs.fit.sum=14.620782 (up)
# , 10027, 10859 # .hatvalues == 1; total 7; iPad1#1; err.abs.fit.sum=14.570246 (up)
# , 10332 # .hatvalues == 1; total 7; iPad4#1; err.abs.fit.sum=13.706467
# , 11759 # .hatvalues == 1; total 6; iPadAir2#1; err.abs.fit.sum=13.643043
# , 10675 # .hatvalues == 1; total 5; iPadAir#1; err.abs.fit.sum=13.623787
# , 11119 # .hatvalues == 1; total 4; iPadmini3#1; err.abs.fit.sum=NA
# , 10017, 10027, 10859 # .hatvalues == 1; total 1; iPad3#1 & iPad1#1; err.abs.fit.sum=13.438903
# biddable == 1; err.abs.fit.sum=361.78243
# , 10813 # outliers; next is 665 w/ rstudent=-5.021180; err.abs.fit.sum=356.83424
# , 10666 # outliers; next is 808 w/ rstudent=-4.764126; err.abs.fit.sum=352.46437
# , 11736 # outliers; next is 665 w/ rstudent=-4.614022; err.abs.fit.sum=348.59977
# , 10542 # outliers; next is 665 w/ rstudent=-4.654923; err.abs.fit.sum=344.18546
# , 11330 # outliers; next is 327 w/ rstudent=-4.628972; err.abs.fit.sum=336.12636
# , 10561 # outliers; next is 56 w/ rstudent=-4.612970; err.abs.fit.sum=329.50309
# , 10166 # outliers; next is 318 w/ rstudent=-4.717238; err.abs.fit.sum=318.50562
# , 10543 # outliers; next is 464 w/ rstudent=-4.811116; err.abs.fit.sum=314.32801
# , 10285 # outliers; next is 21 w/ rstudent=-4.850822; err.abs.fit.sum=310.19008
# #, 10091 # outliers; next is 464 w/ rstudent=-4.941448; err.abs.fit.sum=312.94069 (up)
# #, 10781 # outliers; next is 250 w/ rstudent=-4.793502; err.abs.fit.sum=313.03867 (up)
# , 10446 # outliers; next is 371 w/ rstudent=-4.787578; err.abs.fit.sum=307.15681
# , 10631 # outliers; next is 165 w/ rstudent=-4.130356; err.abs.fit.sum=303.34549
# #, 10330 # outliers; next is 217 w/ rstudent=-4.067684; err.abs.fit.sum=312.75121 (up)
# #, 10402 # outliers; next is 388 w/ rstudent=-4.067684; err.abs.fit.sum=311.84516 (up)
# #, 10659 # outliers; next is 128 w/ rstudent=-3.982911; err.abs.fit.sum=311.84516 (up)
# , 10091, 10781, 10330, 10402, 10659#, 10281 outliers; err.abs.fit.sum=282.381827; iPad4#0=13.806011; iPad4#1=7.799398
# #, 10281 # outliers; next is NA w/ rstudent=NA; err.abs.fit.sum=287.147331 (up); iPad4#0=14.372770; iPad4#1=4.591408
# #, 10624 # outliers; ignored along with 10281 err.abs.fit.sum=289.116467 (up); iPad4#0=; iPad4#1=
# #, 10624 # outliers; ignored w/o 10281 err.abs.fit.sum=286.415040 (up); iPad4#0=; iPad4#1=
# #, 10636 # hatvalues==1; next is 11652; err.abs.fit.sum=290.50254 (up)
# , 11652 # hatvalues==1; next is 10636; err.abs.fit.sum=282.183867
# #err.abs.fit.sum=282.227249
# )
### bid._sp
### no_sp
glbObsFitOutliers[["RFE.X"]] <- c(NULL
# is.na(RFE.X.glm$.dffits)
, 11233
)
glbObsFitOutliers[["CSM.X"]] <- c(NULL
# is.na(.rstudent)
, 11233, 11544
# .hatvalues >= 0.99
# -38,167,642 < minmax(.rstudent) < 49,649,823
#, 10241, 10573, 10834, 10930, 11078, 11596, 11807, 11846
)
# glbObsFitOutliers[["CSM2.X"]] <- c(NULL
# # is.na(.rstudent)
# , 11233, 11250, 11452, 11544
# # .hatvalues >= 0.99
# # -51,891,504 < minmax(.rstudent) < 44,019,269
# , 11504, 11713, 11760, 11814 + 2 more
# )
### no_sp
### bid0_nosp
# glbObsFitOutliers[["RFE.X"]] <- c(NULL
# # is.na(RFE.X.glm$.dffits)
# , 10026, 11172, 11357, 11767
# )
# glbObsFitOutliers[["CSM.X"]] <- c(NULL
# # is.na(.dffits)
# , 10045, 10089, 10918, 11852 # iPad2#1
# , 10852, 11340, 11464 # iPadmini3#0
# , 10014, 10025, 10218, 10287, 10382, 10789, 11005, 11404, 11497, 11580, 11763, 11835 # c("Unknown#0", "iPad1#0", "iPad3#0", "iPadAir#0", "iPadAir2#0", "iPadmini#0")
# , 10155, 10362, 10746, 11029, 11451, 11724, 11759, 11799, 11807 # c("Unknown#1", "iPad1#1", "iPad2#0", "iPad3#1", "iPad4#0", "iPadAir#1", "iPadAir2#1", "iPadmini#1", "iPadmini3#1")
# , 11001 # Unknown#1
#
# # min(.rstudent) <= -121446236
# , 11760 # iPadAir2#0
# , 11751 # iPad2#1
# # max(.rstudent) >= 70875386
# , 11817 # Unknown#1
# , 10763 # iPad1#0
# , 10875 # iPad1#1
#
# # .hatvalues >= 0.99
# )
# c(NULL
# # is.na(CSM.X.glm$.dffits)
# ,10026, 10089, 10218, 10382, 10918, 11005
# # CSM.X.glm$.hatvalues > 0.99
# ,10014, 11444, 11448, 11455, 11835, 11852
# # CSM.X.glm$.rstudent <= -43969313 & >= 44111144
# ,10675, 11272
# )
### bid0_nosp
# influence.measures: car::outlier; rstudent; dffits; hatvalues; dfbeta; dfbetas
#mdlId <- "Final.glm";
#print(outliers_df <- data.frame(.Bonf.p=outliers$bonf.p))
#mdlId <- "RFE.X.glm"; obs_df <- fitobs_df
#mdlId <- "Final.glm"; obs_df <- trnobs_df
#mdlId <- "CSM2.X.glm"; obs_df <- fitobs_df
#print(outliers <- car::outlierTest(glb_models_lst[[mdlId]]$finalModel))
#mdlIdFamily <- paste0(head(unlist(str_split(mdlId, "\\.")), -1), collapse="."); obs_df <- dplyr::filter_(obs_df, interp(~(!(var %in% glbObsFitOutliers[[mdlIdFamily]])), var = as.name(glb_id_var))); model_diags_df <- cbind(obs_df, data.frame(.rstudent=stats::rstudent(glb_models_lst[[mdlId]]$finalModel)), data.frame(.dffits=stats::dffits(glb_models_lst[[mdlId]]$finalModel)), data.frame(.hatvalues=stats::hatvalues(glb_models_lst[[mdlId]]$finalModel)));print(summary(model_diags_df[, c(".rstudent",".dffits",".hatvalues")])); table(cut(model_diags_df$.hatvalues, breaks=c(0.00, 0.98, 0.99, 1.00)))
#print(subset(model_diags_df, is.na(.rstudent))[, glb_id_var])
#print(subset(model_diags_df, is.na(.dffits))[, glb_id_var])
#print(model_diags_df[which.min(model_diags_df$.dffits), ])
#print(subset(model_diags_df, .hatvalues > 0.99)[, glb_id_var])
#dffits_df <- merge(dffits_df, outliers_df, by="row.names", all.x=TRUE); row.names(dffits_df) <- dffits_df$Row.names; dffits_df <- subset(dffits_df, select=-Row.names)
#dffits_df <- merge(dffits_df, glb_fitobs_df, by="row.names", all.x=TRUE); row.names(dffits_df) <- dffits_df$Row.names; dffits_df <- subset(dffits_df, select=-Row.names)
#subset(dffits_df, !is.na(.Bonf.p))
#mdlId <- "CSM.X.glm"; vars <- myextract_actual_feats(row.names(orderBy(reformulate(c("-", paste0(mdlId, ".importance"))), myget_feats_importance(glb_models_lst[[mdlId]]))));
#model_diags_df <- glb_get_predictions(model_diags_df, mdlId,glb_rsp_var_out)
#obs_ix <- row.names(model_diags_df) %in% names(outliers$rstudent)[1]
#obs_ix <- which(is.na(model_diags_df$.rstudent))
#obs_ix <- which(is.na(model_diags_df$.dffits))
#myplot_parcoord(obs_df=model_diags_df[, c(glb_id_var, glb_category_var, ".rstudent", ".dffits", ".hatvalues", glb_rsp_var, paste0(glb_rsp_var_out, mdlId), vars[1:min(20, length(vars))])], obs_ix=obs_ix, id_var=glb_id_var, category_var=glb_category_var)
#model_diags_df[row.names(model_diags_df) %in% names(outliers$rstudent)[c(1:2)], ]
#ctgry_diags_df <- model_diags_df[model_diags_df[, glb_category_var] %in% c("Unknown#0"), ]
#myplot_parcoord(obs_df=ctgry_diags_df[, c(glb_id_var, glb_category_var, ".rstudent", ".dffits", ".hatvalues", glb_rsp_var, "startprice.log10.predict.RFE.X.glmnet", indep_vars[1:20])], obs_ix=row.names(ctgry_diags_df) %in% names(outliers$rstudent)[1], id_var=glb_id_var, category_var=glb_category_var)
#table(glb_fitobs_df[model_diags_df[, glb_category_var] %in% c("iPad1#1"), "startprice.log10.cut.fctr"])
#glb_fitobs_df[model_diags_df[, glb_category_var] %in% c("iPad1#1"), c(glb_id_var, "startprice")]
# No outliers & .dffits == NaN
#myplot_parcoord(obs_df=model_diags_df[, c(glb_id_var, glb_category_var, glb_rsp_var, "startprice.log10.predict.RFE.X.glmnet", indep_vars[1:10])], obs_ix=seq(1:nrow(model_diags_df))[is.na(model_diags_df$.dffits)], id_var=glb_id_var, category_var=glb_category_var)
#dffits_ctgry_df <- subset(dffits_df, prdl.descr.my.fctr %in% c("Unknown#0"))
#myplot_parcoord(obs_df=dffits_ctgry_df[, c(glb_id_var, glb_category_var, ".dffits", ".Bonf.p", glb_rsp_var, "startprice.log10.predict.RFE.X.glmnet", indep_vars[1:5])], obs_ix=seq(1:nrow(dffits_ctgry_df))[!is.na(dffits_ctgry_df$.Bonf.p)], id_var=glb_id_var, category_var=glb_category_var)
#
#car::influenceIndexPlot(glb_models_lst[["RFE.X.glm"]]$finalModel, id.n=3)
# myplot_parcoord(obs_df=glb_fitobs_df[, c(glb_id_var, glb_rsp_var,
# "startprice.log10.predict.RFE.X.glmnet",
# indep_vars[1:5])], obs_ix=hatobs_ix, id_var=glb_id_var)
# myplot_parcoord(x=glb_fitobs_df[, c(glb_rsp_var, "startprice.log10.predict.RFE.X.glmnet",
# indep_vars[1:2])], obs_ix=hatobs_ix)
# hatvals <- hatvalues(glb_models_lst[["RFE.X.glm"]]$finalModel)
# hatobs_ix <- which(hatvals == max(hatvals))
# MASS::parcoord(x=glb_fitobs_df[, c(glb_rsp_var, "startprice.log10.predict.RFE.X.glmnet",
# indep_vars[1:2])], var.label=TRUE)
#plot(hatvalues(glb_models_lst[["RFE.X.glm"]]$finalModel), type = "h")
#glb_fitobs_df[which(row.names(glb_fitobs_df) %in% c("972")), c(glb_id_var, glb_rsp_var, glb_rsp_var_raw, "sold", glb_category_var)]
#all.equal(glb_models_lst[[glb_sel_mdl_id]], glb_models_lst[[glb_fin_mdl_id]])
glbObsTrnOutliers <- list()
#car::outlierTest(glb_models_lst[["RFE.X.glm"]]$finalModel)
#glb_trnobs_df[which(row.names(glb_fitobs_df) %in% c("972")), c(glb_id_var, glb_rsp_var, glb_rsp_var_raw, "sold", glb_category_var)]
glb_models_lst <- list(); glb_models_df <- data.frame()
# Regression
if (glb_is_regression) {
glbMdlMethods <- c(NULL
# deterministic
#, "lm",
, "glm"
#, "bayesglm" # crashing w/ parallel processing
, "glmnet", "rpart"
# non-deterministic
, "gbm", "rf"
# Unknown
#, "nnet" , "avNNet" # predicts 1 for all obs in bid0_sp # runs 25 models per cv sample for tunelength=5
, "svmLinear", "svmLinear2"
#, "svmPoly" # crashing w/ parallel processing #, "svmPoly" runs 75 models per cv sample for tunelength=5
#, "svmRadial" # crashing w/ parallel processing
, "earth"
#, "bagEarth" # Takes a long time
)
} else
# Classification - Add ada,bagEarth (auto feature selection)
if (glb_is_binomial)
glbMdlMethods <- c(NULL
# deterministic
, "glm"
, "bayesglm" # crashing w/ parallel processing
, "glmnet"
, "nnet"
, "rpart"
# non-deterministic
, "gbm"
, "avNNet" # runs 25 models per cv sample for tunelength=5
, "rf"
# Unknown
, "lda", "lda2"
# svm models crash when predict is called -> internal to kernlab it should call predict without .outcome
# , "svmLinear", "svmLinear2", "svmPoly" #, "svmPoly" runs 75 models per cv sample for tunelength=5
# , "svmRadial"
, "earth"
, "bagEarth" # Takes a long time
) else
glbMdlMethods <- c("rpart", "rf", "gbm")
glb_mdl_family_lst <- list(); glb_mdl_feats_lst <- list()
# family: Choose from c("RFE.X", "CSM.X", "All.X", "Best.Interact")
# methods: Choose from c(NULL, <method>, glbMdlMethods)
glb_mdl_family_lst[["CSM.X"]] <- setdiff(glbMdlMethods, c("lda", "lda2")) # crashing due to category:.clusterid ??? #c("glmnet", "glm") # non-NULL list is mandatory
# glb_mdl_family_lst[["CSM2.X"]] <- c("glmnet", "glm") # non-NULL list is mandatory
glb_mdl_family_lst[["RFE.X"]] <- c("glmnet", "glm") # # setdiff(glbMdlMethods, c("lda", "lda2")) # crashing due to category:.clusterid #non-NULL list is mandatory
glb_mdl_family_lst[["All.X"]] <- "glmnet" # non-NULL list is mandatory
glb_mdl_family_lst[["Best.Interact"]] <- "glmnet" # non-NULL list is mandatory
### bid1_sp
# glb_mdl_family_lst[["CSM.X"]] <- "glmnet"
# glb_mdl_feats_lst[["CSM.X"]] <- c(NULL
# # from RFE.X
# , "startprice.dgt1.is9", "startprice.dcm2.is9", "startprice.dcm1.is9", "startprice.dgt2.is9"
# #, "condition.fctr"
# , "prdl.descr.my.fctr", "color.fctr"
# #, "D.ratio.weight.sum.wrds.n"
# , "cellular.fctr", "cellular.fctr:carrier.fctr"
#
# # from RFE.X.Interact
# , "cellular.fctr:prdl.descr.my.fctr", "cellular.fctr:startprice.dgt2.is9", "cellular.fctr:startprice.dgt1.is9", "cellular.fctr:color.fctr"
# , "cellular.fctr:condition.fctr" # RMSE up with keeping condition.fctr in the model
# # RMSE & R.sq up with removing condition.fctr from the model
# , "cellular.fctr:D.ratio.weight.sum.wrds.n"
# )
### bid1_sp
### !_sp
# glb_mdl_family_lst[["CSM.X"]] <- "glmnet"
# glb_mdl_feats_lst[["CSM.X"]] <- c(NULL
# , "D.ratio.sum.TfIdf.wrds.n", "D.TfIdf.sum.stem.stop.Ratio",
# , "D.npnct15.log", "D.npnct03.log", "D.wrds.n.log", "D.chrs.n.log")
# indep_vars <- union(setdiff(indep_vars, interact_vars_vctr),
# paste(glb_category_var, interact_vars_vctr,
# sep=ifelse(grepl("\\.fctr", glb_category_var), "*", ".fctr*")))
# indep_vars <- union(setdiff(indep_vars,
# c("startprice.log.diff", "startprice.unit9", "biddable", "cellular.fctr", "carrier.fctr")),
# c("startprice.log.diff*biddable", "startprice.unit9*biddable", "cellular.fctr*carrier.fctr"))
### !_sp
# dAFeats.CSM.X %<d-% c(NULL
# # Intearction feats up to varImp(RFE.X.glmnet) >= 50
# , "spdiff.cut.fctr*biddable"
# #, "spdiff.cut.fctr*prdl.my.fctr"
# #, "spdiff.cut.fctr*storage.fctr"
# #, "spdiff.cut.fctr*condition.fctr"
# #, "spdiff.cut.fctr*D.chrs.pnct11.n.log"
# , setdiff(myextract_actual_feats(predictors(rfe_fit_results)), c(NULL
# , "spdiff.cut.fctr"
# , "biddable"
# #, "prdl.my.fctr"
# #, "storage.fctr"
# #, "condition.fctr"
# #, "D.chrs.pnct11.n.log"
# ))
# )
# glb_mdl_feats_lst[["CSM.X"]] <- "%<d-% dAFeats.CSM.X"
dAFeats.CSM.X %<d-% c(NULL
, "spdiff.cut.fctr*biddable"
#, "spdiff.cut.fctr*sprice.d20nexp"
#, "spdiff.cut.fctr*prdl.my.fctr:.clusterid.fctr"
, setdiff(myextract_actual_feats(predictors(rfe_fit_results)), c(NULL
, "spdiff.cut.fctr"
, "biddable"
#, "sprice.d20nexp"
#, "prdl.my.fctr", ".clusterid.fctr"
))
)
glb_mdl_feats_lst[["CSM.X"]] <- "%<d-% dAFeats.CSM.X"
# dAFeats.CSM2.X %<d-% c(NULL
# , "spdiff.cut.fctr*biddable"
# , "spdiff.cut.fctr*sprice.d20nexp"
# , "spdiff.cut.fctr*prdl.my.fctr"
# #, "spdiff.cut.fctr*prdl.my.fctr:.clusterid.fctr"
# , setdiff(myextract_actual_feats(predictors(rfe_fit_results)), c(NULL
# , "spdiff.cut.fctr"
# , "biddable"
# , "sprice.d20nexp"
# , "prdl.my.fctr"
# #, "prdl.my.fctr", ".clusterid.fctr"
# ))
# )
# glb_mdl_feats_lst[["CSM2.X"]] <- "%<d-% dAFeats.CSM2.X"
# Check if interaction features make fit better
# Check if tuning parameters make fit better
glb_tune_models_df <- data.frame()
#RFE.X.avNNet
### bid0_sp
# size=[1] 3 5 7 9; decay=[0] 1e-04 0.001 0.01 0.1; bag=[FALSE]; RMSE=1.3300906
### bid1_sp
# size=[1] 3 5 7 9; decay=0 0.0001 [0.001] 0.01 0.1; bag=[FALSE]; RMSE=0.9285472
### bid0&1_sp
#RFE.X.bagEarth
### bid0_sp
#RFE.X.bagEarth degree=[1]; nprune=[33]; RMSE=0.1507259
### bid1_sp
#RFE.X.bagEarth degree=[1]; nprune=[32]; RMSE=0.6379639
#RFE.X.bagEarth degree=[1] 2 3; nprune=8 16 32 64 [128]; RMSE=0.6334405
#RFE.X.bagEarth degree=1 [2]; nprune=16 32 64 128 [256]; RMSE=0.6211924
#RFE.X.bagEarth degree=1 [2]; nprune=64 128 200 225 [256]; RMSE=0.6320776 (up)
#RFE.X.bagEarth degree=[1] 2; nprune=64 128 225 256 [275]; RMSE=0.640644 (up)
#RFE.X.bagEarth degree=1 [2] 3; nprune=64 128 200 [256] 300; RMSE=0.6496039 (up)
#RFE.X.bagEarth degree=1 [2] 3; nprune=32 64 128 256 [512]; RMSE=0.6404529 (up)
#RFE.X.bagEarth degree=1 [2] 3; nprune=64 128 256 512 [1024]; RMSE=0.6486663 (up)
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "bagEarth", parameter = "nprune", vals = "256")
# ,data.frame(method = "bagEarth", parameter = "degree", vals = "2")
# ))
### bid0&1_sp
### bid0_sp
#RFE.X.earth degree=[1]; nprune=2 [9] 17 25 33; RMSE=0.1334478
### bid0_sp
#RFE.X.gbm
### bid0_sp
# shrinkage=[0.1]; n.trees=50 100 150 [200] 250; RMSE=0.2062651
# shrinkage=0.00 0.05 0.10 0.15 [0.20]; n.trees=50 [100] 150 200 250; interaction.depth=1 [2] 3 4 5; n.minobsinnode=[10]; RMSE=0.2019453
# shrinkage=0.00 0.05 [0.10] 0.15 0.20; n.trees=50 100 150 200 [250]; interaction.depth=[1] 2 3 4 5; n.minobsinnode=[10]; RMSE=0.2008313
# shrinkage=0.05 [0.10] 0.15 0.20 0.25; n.trees=100 150 200 [250] 300; interaction.depth=[1] 2 3 4 5; n.minobsinnode=[10]; RMSE=0.2008313
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "gbm", parameter = "shrinkage", min = 0.05, max = 0.25, by = 0.05)
# ,data.frame(method = "gbm", parameter = "n.trees", min = 100, max = 300, by = 50)
# ,data.frame(method = "gbm", parameter = "interaction.depth", min = 1, max = 5, by = 1)
# ,data.frame(method = "gbm", parameter = "n.minobsinnode", min = 10, max = 10, by = 10)
# #seq(from=0.05, to=0.25, by=0.05)
# ))
### bid1_sp
# shrinkage=[0.1]; n.trees=50 100 150 200 [250]; interaction.depth=1 2 3 4 [5]; n.minobsinnode=[10]; RMSE=0.5054172
# shrinkage=0.03 [0.04] 0.05 0.06 0.07; n.trees=100 [150] 200 250 300; interaction.depth=2 3 4 5 [6]; n.minobsinnode=6 [8] 10 12 14; RMSE=0.5036430
# shrinkage=0.03 [0.04] 0.05 0.06 0.07; n.trees=100 150 [200] 250 300; interaction.depth=3 4 5 [6] 7; n.minobsinnode=6 8 [10] 12 14; RMSE=0.502774
# shrinkage=0.04; n.trees=200; interaction.depth=6; n.minobsinnode=10; RMSE=0.502774
# shrinkage=[0.05] 0.10 0.15 0.20 0.25; n.trees=100 [150] 200 250 300; interaction.depth=2 3 [4] 5 6; n.minobsinnode=[10]; RMSE=0.5058678 (up)
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "gbm", parameter = "shrinkage", vals = "0.04")
# ,data.frame(method = "gbm", parameter = "n.trees", vals = "200")
# ,data.frame(method = "gbm", parameter = "interaction.depth", vals = "6")
# ,data.frame(method = "gbm", parameter = "n.minobsinnode", vals = "10")
# ))
### bid0&1_sp
#RFE.X.glmnet
### bid1_sp
# alpha=0.100 [0.325] 0.550 0.775 1.000; lambda=0.0005232693 0.0024288010 0.0112734954 [0.0523269304] 0.2428800957; RMSE=0.6164891
### bid1_nosp
# alpha=0.325 0.550 0.775 0.8875 [1.000]; lambda=9.858855e-05 [0.0001971771] 0.0009152152 0.0042480525 0.0197177130; Accuracy=0.8455510
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "glmnet", parameter = "alpha", vals = "0.550 0.775 0.8875 0.94375 1.000")
# ,data.frame(method = "glmnet", parameter = "lambda", vals = "9.858855e-05 0.0001971771 0.0009152152 0.0042480525 0.0197177130")
# ))
#RFE.X.nnet
### bid0_sp
# size=[1] 3 5 7 9; decay=[0] 1e-04 0.001 0.01 0.1; RMSE=1.3300906
### bid1_sp
# size=1 3 5 7 [9]; decay=0e+00 1e-04 1e-03 1e-02 [1e-01]; RMSE=0.9289109
# size=3 5 [7] 9 11; decay=0.0001 0.001 0.01 [0.1] 0.2; RMSE=0.9287422
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "nnet", parameter = "size", vals = "3 5 7 9 11")
# ,data.frame(method = "nnet", parameter = "decay", vals = "0.0001 0.0010 0.0100 0.1000 0.2000")
# ))
### bid0&1_sp
#RFE.X.rf # Don't bother; results are not deterministic
### bid0_sp
# mtry=2 35 [68] 101 134; RMSE=0.1331992
# mtry=2 35 68 [101] 134; RMSE=0.1339974
### bid0_sp
### no_sp
# mtry=2 41 81 121 [161]; Accuracy=0.8398314
# mtry=41 81 [121] 161 181; Accuracy=0.8282403
### no_sp
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "rf", parameter = "mtry", vals = "2 5 9 13 17")
# ))
#RFE.X.rpart
### bid0_sp
# cp=0.020 [0.025] 0.030 0.035 0.040; RMSE=0.1770237
### bid1_sp
# cp=0.001 [0.003] 0.005 0.007 0.009; RMSE=0.5186586
### bid0_nosp
# cp=0.004347826 [0.008695652] 0.017391304 0.021739130 0.034782609; Accuracy=0.8120340
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "rpart", parameter = "cp", vals = "0.004347826 0.008695652 0.017391304 0.021739130 0.034782609")
# ))
#RFE.X.svmLinear
### bid0_sp
# C=[1]; RMSE=0.1374094
# C=1e-02 [0.1] 5e-01 1e+00 2e+00 3e+00 4e+00 1e+01 1e+02; RMSE=0.1271318
# C=0.01 0.05 [0.10] 0.50 1.00 2.00 3.00 4.00; RMSE=0.1271318; 0.1296718
### bid1_sp
# C=[1]; RMSE=0.6614060
# C=1e-02 [1e-01] 1e+00 1e+01 1e+02; RMSE=0.6373977
# C=[0.05] 0.10 0.50 1.00 10.00; RMSE=0.6324697
# C=0.01 [0.05] 0.10 0.50 1.00; RMSE=0.6324697
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "svmLinear", parameter = "C", vals = "0.01 0.05 0.1 0.5 1")
# ))
### bid0&1_sp
#RFE.X.svmLinear2
### bid0_sp
# cost=[0.25] 0.50 1.00 2.00 4.00; RMSE=0.1276354
# cost=0.0625 0.1250 [0.25] 0.50 1.00; RMSE=0.1276354
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "svmLinear2", parameter = "cost", vals = "0.0625 0.125 0.25 0.5 1")
### bid1_sp
# cost=[0.25] 0.50 1.00 2.00 4.00; RMSE=0.6483622
# cost=[0.0625] 0.1250 0.25 0.50 1.00; RMSE=0.6335311
# cost=0.0312 [0.0625] 0.1250 0.25 0.50; RMSE=0.6335311
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method = "svmLinear2", parameter = "cost", vals = "0.0312 0.0625 0.125 0.25 0.50")
# ))
### bid0&1_sp
#RFE.X.svmPoly
### bid0_sp
# degree=[1] 2 3; scale=0.001 0.01 [0.1] 1 10; C=0.25 0.50 1.00 [2.00] 4.00; RMSE=0.1276130
# degree=[1] 2 3 4 5; scale=0.01 0.05 [0.1] 0.5 1; C=0.50 1.00 [2.00] 3.00 4.00; RMSE=0.1276130
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method="svmPoly", parameter="degree", min=1, max=5, by=1) #seq(1, 5, 1)
# ))
# glb_tune_models_df <- myrbind_df(glb_tune_models_df, rbind(data.frame()
# ,data.frame(method="svmPoly", parameter="scale", vals="0.01, 0.05, 0.1, 0.5, 1")
# ,data.frame(method="svmPoly", parameter="C", vals="0.50, 1.00, 2.00, 3.00, 4.00")
# ))
### bid0_sp
#RFE.X.svmRadial
### bid0_sp
# sigma=[0.08674323]; C=0.25 0.50 1.00 [2.00] 4.00; RMSE=0.1614957
### bid0_sp
#data.frame(parameter="mtry", min=080, max=100, by=10),
#glb_to_sav(); all.equal(sav_models_df, glb_models_df)
#glb_models_df <- subset(sav_models_df, id != "RFE.X.gbm"); print(sort(glb_models_df$id))
glb_preproc_methods <- NULL
### bid0_sp
# c("YeoJohnson", "center.scale",
# # crashes with train: all the RMSE metric values are missing
# # probably due to interaction vars
# "range", "pca", "ica",
# "spatialSign")
### bid0_sp
### bid1_sp
# c("YeoJohnson", "center.scale", "range", "pca", "ica", "spatialSign")
### bid1_sp
# Baseline prediction model feature(s)
glb_Baseline_mdl_var <- NULL # or c("<col_name>")
glbMdlMetric_terms <- NULL # or matrix(c(
# 0,1,2,3,4,
# 2,0,1,2,3,
# 4,2,0,1,2,
# 6,4,2,0,1,
# 8,6,4,2,0
# ), byrow=TRUE, nrow=5)
glbMdlMetricSummary <- NULL # or "<metric_name>"
glbMdlMetricMaximize <- NULL # or FALSE (TRUE is not the default for both classification & regression)
glbMdlMetricSummaryFn <- NULL # or function(data, lev=NULL, model=NULL) {
# confusion_mtrx <- t(as.matrix(confusionMatrix(data$pred, data$obs)))
# #print(confusion_mtrx)
# #print(confusion_mtrx * glbMdlMetric_terms)
# metric <- sum(confusion_mtrx * glbMdlMetric_terms) / nrow(data)
# names(metric) <- glbMdlMetricSummary
# return(metric)
# }
glb_rcv_n_folds <- 3 # or NULL
glb_rcv_n_repeats <- 3 # or NULL
glb_clf_proba_threshold <- NULL # 0.5
# Model selection criteria
if (glb_is_regression)
glbMdlMetricsEval <- c("min.RMSE.OOB", "max.R.sq.OOB", "max.Adj.R.sq.fit")
#glbMdlMetricsEval <- c("min.RMSE.fit", "max.R.sq.fit", "max.Adj.R.sq.fit")
if (glb_is_classification) {
if (glb_is_binomial)
glbMdlMetricsEval <-
c("max.Accuracy.OOB", "max.AUCROCR.OOB", "max.AUCpROC.OOB", "min.aic.fit", "max.Accuracy.fit") else
glbMdlMetricsEval <- c("max.Accuracy.OOB", "max.Kappa.OOB")
}
# select from NULL [no ensemble models], "auto" [all models better than MFO or Baseline], c(mdl_ids in glb_models_lst) [Typically top-rated models in auto]
glb_mdl_ensemble <- NULL
### bid0_sp
# c("RFE.X.glm"
# #, "RFE.X.bayesglm"
# , "RFE.X.glmnet", "RFE.X.rpart", "RFE.X.gbm", "RFE.X.rf", "RFE.X.svmLinear", "RFE.X.svmLinear2"
# #, "RFE.X.svmPoly", "RFE.X.svmRadial"
# , "RFE.X.earth", "RFE.X.bagEarth", "RFE.X.Interact.glmnet", "RFE.X.YeoJohnson.glmnet", "RFE.X.center.scale.glmnet", "RFE.X.spatialSign.glmnet")
### bid1_sp
# "auto"; err.abs.fit.sum=76.699774; min.RMSE.fit=0.2186429
# "RFE.X.*"; err.abs.fit.sum=; min.RMSE.fit=0.221114
# c("RFE.X.spatialSign.rf", "RFE.X.YeoJohnson.rf", "RFE.X.center.scale.rf", "RFE.X.rf", "RFE.X.avNNet", "RFE.X.bagEarth", "RFE.X.earth", "RFE.X.gbm", "RFE.X.glmnet", "RFE.X.nnet", "RFE.X.svmLinear2", "RFE.X.glm", "RFE.X.svmLinear", "RFE.X.rpart")
### bid1_sp
### no_sp
# c("RFE.X.rpart", "RFE.X.earth", "RFE.X.glmnet", "RFE.X.glm", "RFE.X.bayesglm", "RFE.X.nnet", "RFE.X.avNNet", "RFE.X.Interact.glmnet", "RFE.X.gbm"
# #,"RFE.X.bagEarth" #takes a long time
# )
### no_sp
### bid1_nosp
# c("CSM.X.glm", "CSM.X.bayesglm", "CSM.X.glmnet", "CSM.X.nnet", "CSM.X.avNNet", "CSM.X.rpart", "CSM.X.gbm", "CSM.X.rf", "CSM.X.lda", "CSM.X.lda2", "CSM.X.earth", "CSM.X.bagEarth", "CSM.X.Interact.glmnet") # Accuracy.OOB(Ensemble.repeatedcv.glmnet) = 0.8240223
# Deleted models with repeated cor(CSM.X.gbm.prob)
# c("CSM.X.glm", "CSM.X.bayesglm", "CSM.X.glmnet", "CSM.X.nnet", "CSM.X.avNNet", "CSM.X.rpart", "CSM.X.gbm", "CSM.X.rf", "CSM.X.lda2", "CSM.X.earth", "CSM.X.bagEarth") # Accuracy.OOB(Ensemble.repeatedcv.glmnet) = 0.8240223
# Used step(ntv.glm) to select simplest model
# c("CSM.X.glmnet", "CSM.X.nnet", "CSM.X.avNNet", "CSM.X.rpart", "CSM.X.gbm", "CSM.X.rf", "CSM.X.earth", "CSM.X.bagEarth") # Accuracy.OOB(Ensemble.repeatedcv.glmnet) = 0.8156425
# Deleted models with cor(CSM.X.gbm.prob) between Q3 & Max
# c("CSM.X.glm", "CSM.X.bayesglm", "CSM.X.glmnet", "CSM.X.nnet", "CSM.X.avNNet", "CSM.X.rpart", "CSM.X.gbm", "CSM.X.rf", "CSM.X.lda2") # Accuracy.OOB(Ensemble.repeatedcv.glmnet) = 0.8184358
### bid1_nosp
#paste(grep("CSM.X", names(glb_models_lst), fixed=TRUE, value=TRUE), collapse='", "')
# Only for classifications; for regressions remove "(.*)\\.prob" form the regex
# tmp_fitobs_df <- glb_fitobs_df[, grep(paste0("^", gsub(".", "\\.", glb_rsp_var_out, fixed = TRUE), "CSM\\.X\\.(.*)\\.prob"), names(glb_fitobs_df), value = TRUE)]; cor_mtrx <- cor(tmp_fitobs_df); cor_vctr <- sort(cor_mtrx[row.names(orderBy(~-Overall, varImp(glb_models_lst[["Ensemble.repeatedcv.glmnet"]])$importance))[1], ]); summary(cor_vctr); cor_vctr
#ntv.glm <- glm(reformulate(indep_vars, glb_rsp_var), family = "binomial", data = glb_fitobs_df)
#step.glm <- step(ntv.glm)
glb_sel_mdl_id <- NULL #select from c(NULL, "All.X.glmnet", "RFE.X.glmnet")
glb_fin_mdl_id <- NULL #select from c(NULL, glb_sel_mdl_id)
glb_dsp_cols <- c("sold", ".grpid", "color", "condition", "cellular", "carrier", "storage", "biddable", "startprice", "sprice.predict.diff")
glb_out_obs <- NULL # "all" for bid._sp # select from c(NULL, "all", "new", "trn")
glb_out_vars_lst <- list()
# glb_id_var will be the first output column, by default
### !_sp
glb_out_vars_lst[["Probability1"]] <- "%<d-% paste0(glb_rsp_var_out, glb_fin_mdl_id, '.prob')"
### !_sp
### bid._sp
# glb_out_vars_lst[[glb_rsp_var_raw]] <- glb_rsp_var_raw
# glb_out_vars_lst[[paste0(head(unlist(strsplit(glb_rsp_var_out, "")), -1), collapse = "")]] <-
# "%<d-% paste0(glb_rsp_var_out, glb_fin_mdl_id)"
### bid._sp
glbOutStackFnames <- NULL #: default
# c("ebayipads_txt_assoc1_out_bid1_stack.csv") # manual stack
# c("ebayipads_finmdl_bid1_out_nnet_1.csv") # universal stack
glb_out_pfx <- "ebayipads_selmdl2_CSM_"
glb_save_envir <- FALSE # or TRUE
# Depict process
glb_analytics_pn <- petrinet(name = "glb_analytics_pn",
trans_df = data.frame(id = 1:6,
name = c("data.training.all","data.new",
"model.selected","model.final",
"data.training.all.prediction","data.new.prediction"),
x=c( -5,-5,-15,-25,-25,-35),
y=c( -5, 5, 0, 0, -5, 5)
),
places_df=data.frame(id=1:4,
name=c("bgn","fit.data.training.all","predict.data.new","end"),
x=c( -0, -20, -30, -40),
y=c( 0, 0, 0, 0),
M0=c( 3, 0, 0, 0)
),
arcs_df=data.frame(
begin=c("bgn","bgn","bgn",
"data.training.all","model.selected","fit.data.training.all",
"fit.data.training.all","model.final",
"data.new","predict.data.new",
"data.training.all.prediction","data.new.prediction"),
end =c("data.training.all","data.new","model.selected",
"fit.data.training.all","fit.data.training.all","model.final",
"data.training.all.prediction","predict.data.new",
"predict.data.new","data.new.prediction",
"end","end")
))
#print(ggplot.petrinet(glb_analytics_pn))
print(ggplot.petrinet(glb_analytics_pn) + coord_flip())
## Loading required package: grid
glb_analytics_avl_objs <- NULL
glb_chunks_df <- myadd_chunk(NULL, "import.data")
## label step_major step_minor label_minor bgn end elapsed
## 1 import.data 1 0 0 10.3 NA NA
1.0: import data#glb_chunks_df <- myadd_chunk(NULL, "import.data")
glb_to_sav <- function() {
sav_allobs_df <<- glb_allobs_df
sav_trnobs_df <<- glb_trnobs_df
if (any(grepl("glb_fitobs_df", ls(envir=globalenv()), fixed=TRUE)) &&
!is.null(glb_fitobs_df)) sav_fitobs_df <<- glb_fitobs_df
if (any(grepl("glb_OOBobs_df", ls(envir=globalenv()), fixed=TRUE)) &&
!is.null(glb_OOBobs_df)) sav_OOBobs_df <<- glb_OOBobs_df
if (any(grepl("glb_newobs_df", ls(envir=globalenv()), fixed=TRUE)) &&
!is.null(glb_newobs_df)) {
#print("Attempting to save glb_newobs_df...")
sav_newobs_df <<- glb_newobs_df
}
if (any(grepl("glb_ctgry_df", ls(envir=globalenv()), fixed=TRUE)) &&
!is.null(glb_ctgry_df)) sav_ctgry_df <<- glb_ctgry_df
if (!is.null(glb_models_lst )) sav_models_lst <<- glb_models_lst
if (!is.null(glb_models_df )) sav_models_df <<- glb_models_df
if (any(grepl("glb_feats_df", ls(envir=globalenv()), fixed=TRUE)) &&
!is.null(glb_feats_df)) sav_feats_df <<- glb_feats_df
if (any(grepl("glb_featsimp_df", ls(envir=globalenv()), fixed=TRUE)) &&
!is.null(glb_featsimp_df)) sav_featsimp_df <<- glb_featsimp_df
}
glb_trnobs_df <- myimport_data(url=glb_trnng_url, comment="glb_trnobs_df",
force_header=TRUE)
## [1] "Reading file ./data/eBayiPadTrain.csv..."
## [1] "dimensions of data in ./data/eBayiPadTrain.csv: 1,861 rows x 11 cols"
## description
## 1 iPad is in 8.5+ out of 10 cosmetic condition!
## 2 Previously used, please read description. May show signs of use such as scratches to the screen and
## 3
## 4
## 5 Please feel free to buy. All products have been thoroughly inspected, cleaned and tested to be 100%
## 6
## biddable startprice condition cellular carrier color
## 1 0 159.99 Used 0 None Black
## 2 1 0.99 Used 1 Verizon Unknown
## 3 0 199.99 Used 0 None White
## 4 0 235.00 New other (see details) 0 None Unknown
## 5 0 199.99 Seller refurbished Unknown Unknown Unknown
## 6 1 175.00 Used 1 AT&T Space Gray
## storage productline sold UniqueID
## 1 16 iPad 2 0 10001
## 2 16 iPad 2 1 10002
## 3 16 iPad 4 1 10003
## 4 16 iPad mini 2 0 10004
## 5 Unknown Unknown 0 10005
## 6 32 iPad mini 2 1 10006
## description
## 65
## 283 Pristine condition, comes with a case and stylus.
## 948 \211\333\317Used Apple Ipad 16 gig 1st generation in Great working condition and 100% functional.Very little
## 1354
## 1366 Item still in complete working order, minor scratches, normal wear and tear but no damage. screen is
## 1840
## biddable startprice condition cellular carrier color
## 65 0 195.00 Used 0 None Unknown
## 283 1 20.00 Used 0 None Unknown
## 948 0 110.00 Seller refurbished 0 None Black
## 1354 0 300.00 Used 0 None White
## 1366 1 125.00 Used Unknown Unknown Unknown
## 1840 0 249.99 Used 1 Sprint Space Gray
## storage productline sold UniqueID
## 65 16 iPad mini 0 10065
## 283 64 iPad 1 0 10283
## 948 32 iPad 1 0 10948
## 1354 16 iPad Air 1 11354
## 1366 Unknown iPad 1 1 11366
## 1840 16 iPad Air 1 11840
## description
## 1856 Overall item is in good condition and is fully operational and ready to use. Comes with box and
## 1857 Used. Tested. Guaranteed to work. Physical condition grade B+ does have some light scratches and
## 1858 This item is brand new and was never used; however, the box and/or packaging has been opened.
## 1859
## 1860 This unit has minor scratches on case and several small scratches on the display. \nIt is in
## 1861 30 Day Warranty. Fully functional engraved iPad 1st Generation with signs of normal wear which
## biddable startprice condition cellular carrier
## 1856 0 89.50 Used 1 AT&T
## 1857 0 239.95 Used 0 None
## 1858 0 329.99 New other (see details) 0 None
## 1859 0 400.00 New 0 None
## 1860 0 89.00 Seller refurbished 0 None
## 1861 0 119.99 Used 1 AT&T
## color storage productline sold UniqueID
## 1856 Unknown 16 iPad 1 0 11856
## 1857 Black 32 iPad 4 1 11857
## 1858 Space Gray 16 iPad Air 0 11858
## 1859 Gold 16 iPad mini 3 0 11859
## 1860 Black 64 iPad 1 1 11860
## 1861 Black 64 iPad 1 0 11861
## 'data.frame': 1861 obs. of 11 variables:
## $ description: chr "iPad is in 8.5+ out of 10 cosmetic condition!" "Previously used, please read description. May show signs of use such as scratches to the screen and " "" "" ...
## $ biddable : int 0 1 0 0 0 1 1 0 1 1 ...
## $ startprice : num 159.99 0.99 199.99 235 199.99 ...
## $ condition : chr "Used" "Used" "Used" "New other (see details)" ...
## $ cellular : chr "0" "1" "0" "0" ...
## $ carrier : chr "None" "Verizon" "None" "None" ...
## $ color : chr "Black" "Unknown" "White" "Unknown" ...
## $ storage : chr "16" "16" "16" "16" ...
## $ productline: chr "iPad 2" "iPad 2" "iPad 4" "iPad mini 2" ...
## $ sold : int 0 1 1 0 0 1 1 0 1 1 ...
## $ UniqueID : int 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 ...
## - attr(*, "comment")= chr "glb_trnobs_df"
## NULL
# glb_trnobs_df <- read.delim("data/hygiene.txt", header=TRUE, fill=TRUE, sep="\t",
# fileEncoding='iso-8859-1')
# glb_trnobs_df <- read.table("data/hygiene.dat.labels", col.names=c("dirty"),
# na.strings="[none]")
# glb_trnobs_df$review <- readLines("data/hygiene.dat", n =-1)
# comment(glb_trnobs_df) <- "glb_trnobs_df"
# glb_trnobs_df <- data.frame()
# for (symbol in c("Boeing", "CocaCola", "GE", "IBM", "ProcterGamble")) {
# sym_trnobs_df <-
# myimport_data(url=gsub("IBM", symbol, glb_trnng_url), comment="glb_trnobs_df",
# force_header=TRUE)
# sym_trnobs_df$Symbol <- symbol
# glb_trnobs_df <- myrbind_df(glb_trnobs_df, sym_trnobs_df)
# }
# glb_trnobs_df <-
# glb_trnobs_df %>% dplyr::filter(Year >= 1999)
if (glb_is_separate_newobs_dataset) {
glb_newobs_df <- myimport_data(url=glb_newdt_url, comment="glb_newobs_df",
force_header=TRUE)
# To make plots / stats / checks easier in chunk:inspectORexplore.data
glb_allobs_df <- myrbind_df(glb_trnobs_df, glb_newobs_df);
comment(glb_allobs_df) <- "glb_allobs_df"
} else {
glb_allobs_df <- glb_trnobs_df; comment(glb_allobs_df) <- "glb_allobs_df"
if (!glb_split_entity_newobs_datasets) {
stop("Not implemented yet")
glb_newobs_df <- glb_trnobs_df[sample(1:nrow(glb_trnobs_df),
max(2, nrow(glb_trnobs_df) / 1000)),]
} else if (glb_split_newdata_method == "condition") {
glb_newobs_df <- do.call("subset",
list(glb_trnobs_df, parse(text=glb_split_newdata_condition)))
glb_trnobs_df <- do.call("subset",
list(glb_trnobs_df, parse(text=paste0("!(",
glb_split_newdata_condition,
")"))))
} else if (glb_split_newdata_method == "sample") {
require(caTools)
set.seed(glb_split_sample.seed)
split <- sample.split(glb_trnobs_df[, glb_rsp_var_raw],
SplitRatio=(1-glb_split_newdata_size_ratio))
glb_newobs_df <- glb_trnobs_df[!split, ]
glb_trnobs_df <- glb_trnobs_df[split ,]
} else if (glb_split_newdata_method == "copy") {
glb_trnobs_df <- glb_allobs_df
comment(glb_trnobs_df) <- "glb_trnobs_df"
glb_newobs_df <- glb_allobs_df
comment(glb_newobs_df) <- "glb_newobs_df"
} else stop("glb_split_newdata_method should be %in% c('condition', 'sample', 'copy')")
comment(glb_newobs_df) <- "glb_newobs_df"
myprint_df(glb_newobs_df)
str(glb_newobs_df)
if (glb_split_entity_newobs_datasets) {
myprint_df(glb_trnobs_df)
str(glb_trnobs_df)
}
}
## [1] "Reading file ./data/eBayiPadTest.csv..."
## [1] "dimensions of data in ./data/eBayiPadTest.csv: 798 rows x 10 cols"
## description
## 1 like new
## 2 Item is in great shape. I upgraded to the iPad Air 2 and don't need the mini any longer, even though
## 3 This iPad is working and is tested 100%. It runs great. It is in good condition. Cracked digitizer.
## 4
## 5 Grade A condition means that the Ipad is 100% working condition. Cosmetically 8/9 out of 10 - Will
## 6 Brand new factory sealed iPad in an OPEN BOX...THE BOX ITSELF IS HEAVILY DISTRESSED(see
## biddable startprice condition cellular carrier color
## 1 0 105.00 Used 1 AT&T Unknown
## 2 0 195.00 Used 0 None Unknown
## 3 0 219.99 Used 0 None Unknown
## 4 1 100.00 Used 0 None Unknown
## 5 0 210.99 Manufacturer refurbished 0 None Black
## 6 0 514.95 New other (see details) 0 None Gold
## storage productline UniqueID
## 1 32 iPad 1 11862
## 2 16 iPad mini 2 11863
## 3 64 iPad 3 11864
## 4 16 iPad mini 11865
## 5 32 iPad 3 11866
## 6 64 iPad Air 2 11867
## description
## 1 like new
## 142 iPad mini 1st gen wi-fi 16gb is in perfect working order.
## 309 In excellent condition. Minor scratches on the back. Screen in mint condition. Comes in original
## 312 iPad is in Great condition, the screen is in great condition showing only a few minor scratches, the
## 320 Good condition and fully functional
## 369
## biddable startprice condition cellular carrier color storage
## 1 0 105.00 Used 1 AT&T Unknown 32
## 142 1 0.99 Used 0 None Unknown 16
## 309 0 200.00 Used 1 AT&T Black 32
## 312 1 0.99 Used 0 None Unknown 16
## 320 1 60.00 Used 0 None White 16
## 369 1 197.97 Used 0 None Unknown 64
## productline UniqueID
## 1 iPad 1 11862
## 142 iPad mini 12003
## 309 iPad 3 12170
## 312 iPad mini 2 12173
## 320 iPad 1 12181
## 369 iPad mini 3 12230
## description
## 793 Crack on digitizer near top. Top line of digitizer does not respond to touch. Other than that, all
## 794
## 795
## 796
## 797
## 798 Slightly Used. Includes everything you need plus a nice leather case!\nThere is a slice mark on the
## biddable startprice condition cellular carrier color
## 793 0 104.00 For parts or not working 1 Unknown Black
## 794 0 95.00 Used 1 AT&T Unknown
## 795 1 199.99 Manufacturer refurbished 0 None White
## 796 0 149.99 Used 0 None Unknown
## 797 0 7.99 New Unknown Unknown Unknown
## 798 0 139.00 Used 1 Unknown Black
## storage productline UniqueID
## 793 16 iPad 2 12654
## 794 64 iPad 1 12655
## 795 16 iPad 4 12656
## 796 16 iPad 2 12657
## 797 Unknown iPad 3 12658
## 798 32 Unknown 12659
## 'data.frame': 798 obs. of 10 variables:
## $ description: chr "like new" "Item is in great shape. I upgraded to the iPad Air 2 and don't need the mini any longer, even though " "This iPad is working and is tested 100%. It runs great. It is in good condition. Cracked digitizer." "" ...
## $ biddable : int 0 0 0 1 0 0 0 0 0 1 ...
## $ startprice : num 105 195 220 100 211 ...
## $ condition : chr "Used" "Used" "Used" "Used" ...
## $ cellular : chr "1" "0" "0" "0" ...
## $ carrier : chr "AT&T" "None" "None" "None" ...
## $ color : chr "Unknown" "Unknown" "Unknown" "Unknown" ...
## $ storage : chr "32" "16" "64" "16" ...
## $ productline: chr "iPad 1" "iPad mini 2" "iPad 3" "iPad mini" ...
## $ UniqueID : int 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 ...
## - attr(*, "comment")= chr "glb_newobs_df"
## NULL
if ((num_nas <- sum(is.na(glb_trnobs_df[, glb_rsp_var_raw]))) > 0)
stop("glb_trnobs_df$", glb_rsp_var_raw, " contains NAs for ", num_nas, " obs")
if (nrow(glb_trnobs_df) == nrow(glb_allobs_df))
warning("glb_trnobs_df same as glb_allobs_df")
if (nrow(glb_newobs_df) == nrow(glb_allobs_df))
warning("glb_newobs_df same as glb_allobs_df")
if (length(glb_drop_vars) > 0) {
warning("dropping vars: ", paste0(glb_drop_vars, collapse=", "))
glb_allobs_df <- glb_allobs_df[, setdiff(names(glb_allobs_df), glb_drop_vars)]
glb_trnobs_df <- glb_trnobs_df[, setdiff(names(glb_trnobs_df), glb_drop_vars)]
glb_newobs_df <- glb_newobs_df[, setdiff(names(glb_newobs_df), glb_drop_vars)]
}
#stop(here"); sav_allobs_df <- glb_allobs_df # glb_allobs_df <- sav_allobs_df
# Combine trnent & newobs into glb_allobs_df for easier manipulation
glb_trnobs_df$.src <- "Train"; glb_newobs_df$.src <- "Test";
glbFeatsExclude <- union(glbFeatsExclude, ".src")
glb_allobs_df <- myrbind_df(glb_trnobs_df, glb_newobs_df)
comment(glb_allobs_df) <- "glb_allobs_df"
# Check for duplicates in glb_id_var
if (length(glb_id_var) == 0) {
warning("using .rownames as identifiers for observations")
glb_allobs_df$.rownames <- rownames(glb_allobs_df)
glb_trnobs_df$.rownames <- rownames(subset(glb_allobs_df, .src == "Train"))
glb_newobs_df$.rownames <- rownames(subset(glb_allobs_df, .src == "Test"))
glb_id_var <- ".rownames"
}
if (sum(duplicated(glb_allobs_df[, glb_id_var, FALSE])) > 0)
stop(glb_id_var, " duplicated in glb_allobs_df")
glbFeatsExclude <- union(glbFeatsExclude, glb_id_var)
glb_allobs_df <- orderBy(reformulate(glb_id_var), glb_allobs_df)
glb_trnobs_df <- glb_newobs_df <- NULL
# For Tableau
write.csv(glb_allobs_df, "data/eBayiPadAll.csv", row.names=FALSE)
#stop(here"); glb_to_sav()
# Make any data corrections here
glb_allobs_df[glb_allobs_df[, glb_id_var] == 10986, "cellular"] <- "1"
glb_allobs_df[glb_allobs_df[, glb_id_var] == 10986, "carrier"] <- "T-Mobile"
# - Merge glb_obs_stack_condition & glbObsDropCondition
# - Derive glb_obs_stack|drop_chk_vars from condition automatically
# - Implement glb_obs_stack_condition & glb_obs_stack_chk_vars options
dsp_partition_stats <- function(obs_df, vars=NULL) {
lcl_vars <- NULL
for (var in c(vars, glb_rsp_var_raw)) {
if ((length(unique(obs_df[, var])) > 5) && is.numeric(obs_df[, var])) {
cut_var <- paste0(var, ".cut.fctr")
obs_df[, cut_var] <- cut(obs_df[, var], 3)
lcl_vars <- union(lcl_vars, cut_var)
} else lcl_vars <- union(lcl_vars, var)
}
print("Partition stats:")
print(mycreate_sqlxtab_df(obs_df, union(lcl_vars, ".src")))
for (var in lcl_vars) {
print(freq_df <- mycreate_sqlxtab_df(obs_df, union(var, ".src")))
print(myplot_hbar(freq_df, ".src", ".n", colorcol_name=var))
}
print(mycreate_sqlxtab_df(obs_df, ".src"))
# if (length(unique(glb_allobs_df[, glb_rsp_var_raw])) > 5) {
# cut_var <- paste0(glb_rsp_var_raw, ".cut.fctr")
# glb_allobs_df[, cut_var] <- cut(glb_allobs_df[, glb_rsp_var_raw], 3)
# glbFeatsExclude <- union(glbFeatsExclude, cut_var)
# glb_obs_stack_chk_vars <- union(cut_var, glb_obs_stack_chk_vars)
# } else glb_obs_stack_chk_vars <- union(glb_rsp_var_raw, glb_obs_stack_chk_vars)
# #glb_obs_stack_chk_vars <- union(glb_obs_stack_chk_vars, ".src")
# print(mycreate_sqlxtab_df(glb_allobs_df, union(var, ".src")))
# print(mycreate_sqlxtab_df(glb_allobs_df, union(glb_obs_stack_chk_vars, ".src")))
# for (var in glb_obs_stack_chk_vars) {
# print(mycreate_sqlxtab_df(glb_allobs_df, union(var, ".src")))
# }
# print(mycreate_sqlxtab_df(glb_allobs_df, ".src"))
}
myget_symbols <- function(txt) {
if (is.null(txt)) return(NULL)
#print(getParseData(parse(text=txt, keep.source=TRUE)))
return(unique(subset(getParseData(parse(text=txt, keep.source=TRUE)),
token == "SYMBOL")$text))
}
# tokens <- unlist(strsplit(gsub("[[:punct:]|[:space:]]", " ", glbObsDropCondition), " "))
# tokens <- tokens[tokens != ""]
# glb_obs_drop_chk_vars <- c("biddable") # or NULL
dsp_partition_stats(obs_df=glb_allobs_df, vars=myget_symbols(glbObsDropCondition))
## [1] "Partition stats:"
## Loading required package: sqldf
## Loading required package: gsubfn
## Loading required package: proto
## Loading required package: RSQLite
## Loading required package: DBI
## Loading required package: tcltk
## UniqueID.cut.fctr productline sold .src .n
## 1 (1.18e+04,1.27e+04] iPad 2 NA Test 154
## 2 (1.18e+04,1.27e+04] iPad mini NA Test 111
## 3 (1e+04,1.09e+04] iPad 2 1 Train 104
## 4 (1.18e+04,1.27e+04] Unknown NA Test 92
## 5 (1.09e+04,1.18e+04] iPad mini 0 Train 91
## 6 (1e+04,1.09e+04] iPad 1 1 Train 91
## 7 (1.18e+04,1.27e+04] iPad 1 NA Test 88
## 8 (1.09e+04,1.18e+04] Unknown 0 Train 84
## 9 (1.09e+04,1.18e+04] iPad 2 0 Train 82
## 10 (1.18e+04,1.27e+04] iPad Air NA Test 74
## 11 (1e+04,1.09e+04] iPad mini 1 Train 74
## 12 (1.18e+04,1.27e+04] iPad 4 NA Test 68
## 13 (1.09e+04,1.18e+04] iPad Air 2 0 Train 65
## 14 (1.18e+04,1.27e+04] iPad Air 2 NA Test 62
## 15 (1e+04,1.09e+04] iPad 3 1 Train 61
## 16 (1.09e+04,1.18e+04] iPad Air 0 Train 58
## 17 (1.18e+04,1.27e+04] iPad mini 2 NA Test 56
## 18 (1.18e+04,1.27e+04] iPad 3 NA Test 55
## 19 (1.09e+04,1.18e+04] iPad mini 1 Train 54
## 20 (1e+04,1.09e+04] iPad 2 0 Train 52
## 21 (1e+04,1.09e+04] iPad Air 1 Train 51
## 22 (1.09e+04,1.18e+04] iPad 1 0 Train 50
## 23 (1e+04,1.09e+04] iPad mini 0 Train 48
## 24 (1.09e+04,1.18e+04] Unknown 1 Train 47
## 25 (1.09e+04,1.18e+04] iPad 4 0 Train 45
## 26 (1e+04,1.09e+04] iPad 1 0 Train 44
## 27 (1e+04,1.09e+04] iPad 4 0 Train 43
## 28 (1.09e+04,1.18e+04] iPad mini 3 0 Train 41
## 29 (1.09e+04,1.18e+04] iPad 2 1 Train 40
## 30 (1e+04,1.09e+04] iPad 4 1 Train 40
## 31 (1e+04,1.09e+04] iPad Air 0 Train 39
## 32 (1.18e+04,1.27e+04] iPad mini 3 NA Test 38
## 33 (1.09e+04,1.18e+04] iPad mini 2 0 Train 36
## 34 (1e+04,1.09e+04] iPad Air 2 1 Train 36
## 35 (1e+04,1.09e+04] iPad 3 0 Train 35
## 36 (1.09e+04,1.18e+04] iPad 3 0 Train 34
## 37 (1.09e+04,1.18e+04] iPad Air 2 1 Train 33
## 38 (1e+04,1.09e+04] Unknown 0 Train 29
## 39 (1e+04,1.09e+04] Unknown 1 Train 29
## 40 (1.09e+04,1.18e+04] iPad 1 1 Train 28
## 41 (1e+04,1.09e+04] iPad Air 2 0 Train 28
## 42 (1e+04,1.09e+04] iPad mini 2 1 Train 28
## 43 (1.09e+04,1.18e+04] iPad Air 1 Train 25
## 44 (1.09e+04,1.18e+04] iPad mini 2 1 Train 20
## 45 (1e+04,1.09e+04] iPad mini 2 0 Train 20
## 46 (1.09e+04,1.18e+04] iPad 4 1 Train 19
## 47 (1.09e+04,1.18e+04] iPad 3 1 Train 17
## 48 (1e+04,1.09e+04] iPad mini 3 0 Train 17
## 49 (1e+04,1.09e+04] iPad mini 3 1 Train 15
## 50 (1.09e+04,1.18e+04] iPad mini 3 1 Train 12
## 51 (1.18e+04,1.27e+04] Unknown 0 Train 9
## 52 (1.18e+04,1.27e+04] iPad 1 0 Train 8
## 53 (1.18e+04,1.27e+04] iPad Air 2 0 Train 7
## 54 (1.18e+04,1.27e+04] Unknown 1 Train 6
## 55 (1.18e+04,1.27e+04] iPad 1 1 Train 6
## 56 (1.18e+04,1.27e+04] iPad mini 0 Train 6
## 57 (1.18e+04,1.27e+04] iPad 2 0 Train 5
## 58 (1.18e+04,1.27e+04] iPad 4 0 Train 5
## 59 (1.18e+04,1.27e+04] iPad 4 1 Train 5
## 60 (1.18e+04,1.27e+04] iPad Air 0 Train 5
## 61 (1.18e+04,1.27e+04] iPad mini 3 0 Train 5
## 62 (1.18e+04,1.27e+04] iPad 3 0 Train 4
## 63 (1.18e+04,1.27e+04] iPad mini 1 Train 4
## 64 (1.09e+04,1.18e+04] iPad mini Retina 0 Train 3
## 65 (1.18e+04,1.27e+04] iPad 2 1 Train 3
## 66 (1.18e+04,1.27e+04] iPad 3 1 Train 2
## 67 (1.18e+04,1.27e+04] iPad Air 1 Train 2
## 68 (1.18e+04,1.27e+04] iPad Air 2 1 Train 2
## 69 (1.18e+04,1.27e+04] iPad mini 2 0 Train 2
## 70 (1e+04,1.09e+04] iPad mini Retina 1 Train 2
## 71 (1.09e+04,1.18e+04] iPad 5 1 Train 1
## 72 (1.09e+04,1.18e+04] iPad mini Retina 1 Train 1
## 73 (1.18e+04,1.27e+04] iPad mini 2 1 Train 1
## 74 (1.18e+04,1.27e+04] iPad mini Retina 1 Train 1
## 75 (1e+04,1.09e+04] iPad mini Retina 0 Train 1
## UniqueID.cut.fctr .src .n
## 1 (1e+04,1.09e+04] Train 887
## 2 (1.09e+04,1.18e+04] Train 886
## 3 (1.18e+04,1.27e+04] Test 798
## 4 (1.18e+04,1.27e+04] Train 88
## productline .src .n
## 1 iPad 2 Train 286
## 2 iPad mini Train 277
## 3 iPad 1 Train 227
## 4 Unknown Train 204
## 5 iPad Air Train 180
## 6 iPad Air 2 Train 171
## 7 iPad 4 Train 157
## 8 iPad 2 Test 154
## 9 iPad 3 Train 153
## 10 iPad mini Test 111
## 11 iPad mini 2 Train 107
## 12 Unknown Test 92
## 13 iPad mini 3 Train 90
## 14 iPad 1 Test 88
## 15 iPad Air Test 74
## 16 iPad 4 Test 68
## 17 iPad Air 2 Test 62
## 18 iPad mini 2 Test 56
## 19 iPad 3 Test 55
## 20 iPad mini 3 Test 38
## 21 iPad mini Retina Train 8
## 22 iPad 5 Train 1
## sold .src .n
## 1 0 Train 1001
## 2 1 Train 860
## 3 NA Test 798
## .src .n
## 1 Train 1861
## 2 Test 798
if (!is.null(glbObsDropCondition)) {
print(sprintf("Running glbObsDropCondition filter: %s", glbObsDropCondition))
glb_allobs_df <- do.call("subset",
list(glb_allobs_df, parse(text=paste0("!(", glbObsDropCondition, ")"))))
dsp_partition_stats(obs_df=glb_allobs_df, vars=myget_symbols(glbObsDropCondition))
}
## [1] "Running glbObsDropCondition filter: (UniqueID %in% c(NULL\n , 11234 #sold=0; 2 other dups(10306, 11503) are sold=1\n , 11844 #sold=0; 3 other dups(11721, 11738, 11812) are sold=1\n )) | \n (productline %in% c('iPad 5', 'iPad mini Retina'))\n # | (biddable != 0) # bid0_sp\n # | (biddable == 0) # bid1_sp\n "
## [1] "Partition stats:"
## UniqueID.cut.fctr productline sold .src .n
## 1 (1.18e+04,1.27e+04] iPad 2 NA Test 154
## 2 (1.18e+04,1.27e+04] iPad mini NA Test 111
## 3 (1e+04,1.09e+04] iPad 2 1 Train 104
## 4 (1.18e+04,1.27e+04] Unknown NA Test 92
## 5 (1.09e+04,1.18e+04] iPad mini 0 Train 91
## 6 (1e+04,1.09e+04] iPad 1 1 Train 91
## 7 (1.18e+04,1.27e+04] iPad 1 NA Test 88
## 8 (1.09e+04,1.18e+04] Unknown 0 Train 84
## 9 (1.09e+04,1.18e+04] iPad 2 0 Train 82
## 10 (1.18e+04,1.27e+04] iPad Air NA Test 74
## 11 (1e+04,1.09e+04] iPad mini 1 Train 74
## 12 (1.18e+04,1.27e+04] iPad 4 NA Test 68
## 13 (1.09e+04,1.18e+04] iPad Air 2 0 Train 65
## 14 (1.18e+04,1.27e+04] iPad Air 2 NA Test 62
## 15 (1e+04,1.09e+04] iPad 3 1 Train 61
## 16 (1.09e+04,1.18e+04] iPad Air 0 Train 58
## 17 (1.18e+04,1.27e+04] iPad mini 2 NA Test 56
## 18 (1.18e+04,1.27e+04] iPad 3 NA Test 55
## 19 (1.09e+04,1.18e+04] iPad mini 1 Train 54
## 20 (1e+04,1.09e+04] iPad 2 0 Train 52
## 21 (1e+04,1.09e+04] iPad Air 1 Train 51
## 22 (1.09e+04,1.18e+04] iPad 1 0 Train 49
## 23 (1e+04,1.09e+04] iPad mini 0 Train 48
## 24 (1.09e+04,1.18e+04] Unknown 1 Train 47
## 25 (1.09e+04,1.18e+04] iPad 4 0 Train 45
## 26 (1e+04,1.09e+04] iPad 1 0 Train 44
## 27 (1e+04,1.09e+04] iPad 4 0 Train 43
## 28 (1.09e+04,1.18e+04] iPad mini 3 0 Train 41
## 29 (1.09e+04,1.18e+04] iPad 2 1 Train 40
## 30 (1e+04,1.09e+04] iPad 4 1 Train 40
## 31 (1e+04,1.09e+04] iPad Air 0 Train 39
## 32 (1.18e+04,1.27e+04] iPad mini 3 NA Test 38
## 33 (1.09e+04,1.18e+04] iPad mini 2 0 Train 36
## 34 (1e+04,1.09e+04] iPad Air 2 1 Train 36
## 35 (1e+04,1.09e+04] iPad 3 0 Train 35
## 36 (1.09e+04,1.18e+04] iPad 3 0 Train 34
## 37 (1.09e+04,1.18e+04] iPad Air 2 1 Train 33
## 38 (1e+04,1.09e+04] Unknown 0 Train 29
## 39 (1e+04,1.09e+04] Unknown 1 Train 29
## 40 (1.09e+04,1.18e+04] iPad 1 1 Train 28
## 41 (1e+04,1.09e+04] iPad Air 2 0 Train 28
## 42 (1e+04,1.09e+04] iPad mini 2 1 Train 28
## 43 (1.09e+04,1.18e+04] iPad Air 1 Train 25
## 44 (1.09e+04,1.18e+04] iPad mini 2 1 Train 20
## 45 (1e+04,1.09e+04] iPad mini 2 0 Train 20
## 46 (1.09e+04,1.18e+04] iPad 4 1 Train 19
## 47 (1.09e+04,1.18e+04] iPad 3 1 Train 17
## 48 (1e+04,1.09e+04] iPad mini 3 0 Train 17
## 49 (1e+04,1.09e+04] iPad mini 3 1 Train 15
## 50 (1.09e+04,1.18e+04] iPad mini 3 1 Train 12
## 51 (1.18e+04,1.27e+04] Unknown 0 Train 9
## 52 (1.18e+04,1.27e+04] iPad 1 0 Train 7
## 53 (1.18e+04,1.27e+04] iPad Air 2 0 Train 7
## 54 (1.18e+04,1.27e+04] Unknown 1 Train 6
## 55 (1.18e+04,1.27e+04] iPad 1 1 Train 6
## 56 (1.18e+04,1.27e+04] iPad mini 0 Train 6
## 57 (1.18e+04,1.27e+04] iPad 2 0 Train 5
## 58 (1.18e+04,1.27e+04] iPad 4 0 Train 5
## 59 (1.18e+04,1.27e+04] iPad 4 1 Train 5
## 60 (1.18e+04,1.27e+04] iPad Air 0 Train 5
## 61 (1.18e+04,1.27e+04] iPad mini 3 0 Train 5
## 62 (1.18e+04,1.27e+04] iPad 3 0 Train 4
## 63 (1.18e+04,1.27e+04] iPad mini 1 Train 4
## 64 (1.18e+04,1.27e+04] iPad 2 1 Train 3
## 65 (1.18e+04,1.27e+04] iPad 3 1 Train 2
## 66 (1.18e+04,1.27e+04] iPad Air 1 Train 2
## 67 (1.18e+04,1.27e+04] iPad Air 2 1 Train 2
## 68 (1.18e+04,1.27e+04] iPad mini 2 0 Train 2
## 69 (1.18e+04,1.27e+04] iPad mini 2 1 Train 1
## UniqueID.cut.fctr .src .n
## 1 (1e+04,1.09e+04] Train 884
## 2 (1.09e+04,1.18e+04] Train 880
## 3 (1.18e+04,1.27e+04] Test 798
## 4 (1.18e+04,1.27e+04] Train 86
## productline .src .n
## 1 iPad 2 Train 286
## 2 iPad mini Train 277
## 3 iPad 1 Train 225
## 4 Unknown Train 204
## 5 iPad Air Train 180
## 6 iPad Air 2 Train 171
## 7 iPad 4 Train 157
## 8 iPad 2 Test 154
## 9 iPad 3 Train 153
## 10 iPad mini Test 111
## 11 iPad mini 2 Train 107
## 12 Unknown Test 92
## 13 iPad mini 3 Train 90
## 14 iPad 1 Test 88
## 15 iPad Air Test 74
## 16 iPad 4 Test 68
## 17 iPad Air 2 Test 62
## 18 iPad mini 2 Test 56
## 19 iPad 3 Test 55
## 20 iPad mini 3 Test 38
## sold .src .n
## 1 0 Train 995
## 2 1 Train 855
## 3 NA Test 798
## .src .n
## 1 Train 1850
## 2 Test 798
# Check for duplicates by all features
require(gdata)
## Loading required package: gdata
## gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
##
## gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
##
## Attaching package: 'gdata'
##
## The following object is masked from 'package:stats':
##
## nobs
##
## The following object is masked from 'package:utils':
##
## object.size
#print(names(glb_allobs_df))
dup_allobs_df <- glb_allobs_df[duplicated2(subset(glb_allobs_df,
select=-c(UniqueID, sold, .src))), ]
dup_allobs_df <- orderBy(~productline+description+startprice+biddable, dup_allobs_df)
print(sprintf("Found %d duplicates by all features:", nrow(dup_allobs_df)))
## [1] "Found 304 duplicates by all features:"
myprint_df(dup_allobs_df)
## description biddable startprice condition cellular
## 1711 1 0.99 For parts or not working Unknown
## 2608 1 0.99 For parts or not working Unknown
## 293 1 5.00 Used Unknown
## 478 1 5.00 Used Unknown
## 385 0 15.00 Used 0
## 390 0 15.00 Used 0
## carrier color storage productline sold UniqueID .src
## 1711 Unknown Unknown 16 Unknown 1 11711 Train
## 2608 Unknown Unknown 16 Unknown NA 12608 Test
## 293 Unknown White 16 Unknown 1 10293 Train
## 478 Unknown White 16 Unknown 1 10478 Train
## 385 None Black 16 Unknown 0 10385 Train
## 390 None Black 16 Unknown 0 10390 Train
## description biddable startprice condition cellular
## 1956 1 0.99 Used 0
## 828 1 249.97 Manufacturer refurbished 1
## 3 0 199.99 Used 0
## 1649 0 209.00 For parts or not working Unknown
## 2111 1 200.00 Used 0
## 172 0 269.00 Used 0
## carrier color storage productline sold UniqueID .src
## 1956 None Unknown 16 iPad 2 NA 11956 Test
## 828 Unknown Black 64 iPad 2 0 10828 Train
## 3 None White 16 iPad 4 1 10003 Train
## 1649 Unknown Unknown 16 iPad Air 0 11649 Train
## 2111 None Space Gray 64 iPad mini 2 NA 12111 Test
## 172 None Unknown 32 iPad mini 2 0 10172 Train
## description biddable startprice condition cellular carrier color
## 8 0 329.99 New 0 None White
## 660 0 329.99 New 0 None White
## 319 0 345.00 New 0 None Gold
## 1886 0 345.00 New 0 None Gold
## 1363 0 498.88 New 1 Verizon Gold
## 1394 0 498.88 New 1 Verizon Gold
## storage productline sold UniqueID .src
## 8 16 iPad mini 3 0 10008 Train
## 660 16 iPad mini 3 0 10660 Train
## 319 16 iPad mini 3 1 10319 Train
## 1886 16 iPad mini 3 NA 11886 Test
## 1363 16 iPad mini 3 0 11363 Train
## 1394 16 iPad mini 3 0 11394 Train
# print(dup_allobs_df[, c(glb_id_var, glb_rsp_var_raw,
# "description", "startprice", "biddable")])
# write.csv(dup_allobs_df[, c("UniqueID"), FALSE], "ebayipads_dups.csv", row.names=FALSE)
dupobs_df <- tidyr::unite(dup_allobs_df, "allfeats", -c(sold, UniqueID, .src), sep="#")
# dupobs_df <- dplyr::group_by(dupobs_df, allfeats)
# dupobs_df <- dupobs_df[, "UniqueID", FALSE]
# dupobs_df <- ungroup(dupobs_df)
#
# dupobs_df$.rownames <- row.names(dupobs_df)
grpobs_df <- data.frame(allfeats=unique(dupobs_df[, "allfeats"]))
grpobs_df$.grpid <- row.names(grpobs_df)
dupobs_df <- merge(dupobs_df, grpobs_df)
# dupobs_tbl <- table(dupobs_df$.grpid)
# print(max(dupobs_tbl))
# print(dupobs_tbl[which.max(dupobs_tbl)])
# print(dupobs_df[dupobs_df$.grpid == names(dupobs_tbl[which.max(dupobs_tbl)]), ])
# print(dupobs_df[dupobs_df$.grpid == 106, ])
# for (grpid in c(9, 17, 31, 36, 53))
# print(dupobs_df[dupobs_df$.grpid == grpid, ])
dupgrps_df <- as.data.frame(table(dupobs_df$.grpid, dupobs_df$sold, useNA="ifany"))
names(dupgrps_df)[c(1,2)] <- c(".grpid", "sold")
dupgrps_df$.grpid <- as.numeric(as.character(dupgrps_df$.grpid))
dupgrps_df <- tidyr::spread(dupgrps_df, sold, Freq)
names(dupgrps_df)[-1] <- paste("sold", names(dupgrps_df)[-1], sep=".")
dupgrps_df$.freq <- sapply(1:nrow(dupgrps_df), function(row) sum(dupgrps_df[row, -1]))
myprint_df(orderBy(~-.freq, dupgrps_df))
## .grpid sold.0 sold.1 sold.NA .freq
## 40 40 0 6 3 9
## 106 106 0 4 1 5
## 9 9 0 1 3 4
## 17 17 0 3 1 4
## 36 36 0 3 1 4
## 53 53 0 2 2 4
## .grpid sold.0 sold.1 sold.NA .freq
## 10 10 0 2 0 2
## 42 42 0 1 1 2
## 57 57 1 0 1 2
## 66 66 1 0 1 2
## 91 91 0 1 1 2
## 101 101 0 1 1 2
## .grpid sold.0 sold.1 sold.NA .freq
## 130 130 1 0 1 2
## 131 131 1 1 0 2
## 132 132 0 1 1 2
## 133 133 2 0 0 2
## 134 134 0 1 1 2
## 135 135 2 0 0 2
print("sold Conflicts:")
## [1] "sold Conflicts:"
print(subset(dupgrps_df, (sold.0 > 0) & (sold.1 > 0)))
## .grpid sold.0 sold.1 sold.NA .freq
## 4 4 1 1 0 2
## 22 22 1 1 0 2
## 23 23 1 1 0 2
## 74 74 1 1 0 2
## 83 83 1 1 0 2
## 84 84 1 1 0 2
## 95 95 1 1 0 2
## 102 102 1 1 0 2
## 109 109 1 1 0 2
## 111 111 1 1 0 2
## 122 122 1 1 0 2
## 131 131 1 1 0 2
#dupobs_df[dupobs_df$.grpid == 4, ]
glb_allobs_df <- merge(glb_allobs_df, dupobs_df[, c(glb_id_var, ".grpid")],
by=glb_id_var, all.x=TRUE)
if (nrow(subset(dupgrps_df, (sold.0 > 0) & (sold.1 > 0) & (sold.0 != sold.1))) > 0)
stop("Duplicate conflicts are resolvable")
#subset(glb_allobs_df, .grpid %in% c(25))
#mydsp_obs(list(productline.contains="iPad 1", storage.contains="16", color.contains="Black", carrier.contains="None", cellular.contains="0", condition.contains="Used", startprice=80), cols=c("productline", "storage", "color", "carrier", "cellular", "condition", "startprice", "sold"))
print("Test & Train Groups:")
## [1] "Test & Train Groups:"
print(subset(dupgrps_df, (sold.NA > 0)))
## .grpid sold.0 sold.1 sold.NA .freq
## 1 1 0 1 1 2
## 5 5 1 0 1 2
## 7 7 0 0 2 2
## 8 8 1 0 1 2
## 9 9 0 1 3 4
## 12 12 0 0 2 2
## 14 14 0 1 1 2
## 15 15 0 0 2 2
## 17 17 0 3 1 4
## 18 18 0 2 1 3
## 19 19 0 2 1 3
## 24 24 0 2 1 3
## 26 26 1 0 1 2
## 28 28 1 0 1 2
## 30 30 0 1 1 2
## 32 32 0 0 2 2
## 33 33 0 1 1 2
## 35 35 0 2 1 3
## 36 36 0 3 1 4
## 37 37 0 0 2 2
## 38 38 0 1 1 2
## 40 40 0 6 3 9
## 41 41 0 0 2 2
## 42 42 0 1 1 2
## 43 43 0 1 1 2
## 44 44 0 2 1 3
## 47 47 0 1 1 2
## 48 48 0 0 2 2
## 49 49 0 1 2 3
## 51 51 0 1 1 2
## 53 53 0 2 2 4
## 54 54 0 1 1 2
## 55 55 1 0 2 3
## 56 56 1 0 1 2
## 57 57 1 0 1 2
## 58 58 0 0 2 2
## 59 59 1 0 1 2
## 60 60 1 0 1 2
## 63 63 0 1 1 2
## 66 66 1 0 1 2
## 67 67 1 0 1 2
## 68 68 0 0 2 2
## 69 69 1 0 1 2
## 73 73 0 1 1 2
## 76 76 0 2 1 3
## 86 86 0 0 2 2
## 87 87 1 0 1 2
## 89 89 1 0 1 2
## 90 90 0 0 2 2
## 91 91 0 1 1 2
## 93 93 0 1 1 2
## 94 94 1 0 1 2
## 99 99 0 1 1 2
## 101 101 0 1 1 2
## 103 103 0 1 1 2
## 104 104 1 0 1 2
## 106 106 0 4 1 5
## 107 107 0 1 1 2
## 108 108 0 1 1 2
## 112 112 1 0 1 2
## 114 114 0 1 1 2
## 115 115 0 1 1 2
## 116 116 1 0 1 2
## 117 117 0 2 1 3
## 118 118 0 1 1 2
## 121 121 1 0 1 2
## 124 124 1 0 1 2
## 128 128 0 1 1 2
## 130 130 1 0 1 2
## 132 132 0 1 1 2
## 134 134 0 1 1 2
glbFeatsExclude <- c(".grpid", glbFeatsExclude)
#stop(here"); glb_to_sav(); all.equal(sav_allobs_df, glb_allobs_df); glb_allobs_df <- sav_allobs_df
if (!is.null(glbInpMerge)) {
print("Running glbInpMerge specs...")
obsMrg <- data.frame()
for (fName in glbInpMerge$fnames) {
print(sprintf(" Appending rows from %s...", fName))
obsMrg <- rbind(obsMrg, read.csv(fName))
}
glb_allobs_df <- merge(glb_allobs_df, obsMrg, all.x = TRUE)
}
## [1] "Running glbInpMerge specs..."
## [1] " Appending rows from ebayipads_finmdl_bid0_sp_out.csv..."
## [1] " Appending rows from ebayipads_mdlens_bid1_sp_out.csv..."
dsp_partition_stats(obs_df = glb_allobs_df,
vars = myget_symbols(glb_obs_repartition_train_condition))
## [1] "Partition stats:"
## sold .src .n
## 1 0 Train 995
## 2 1 Train 855
## 3 NA Test 798
## sold .src .n
## 1 0 Train 995
## 2 1 Train 855
## 3 NA Test 798
## .src .n
## 1 Train 1850
## 2 Test 798
if (!is.null(glb_obs_repartition_train_condition)) {
print(sprintf("Running glb_obs_repartition_train_condition filter: %s",
glb_obs_repartition_train_condition))
# glb_allobs_df <- mutate(glb_allobs_df, .src=ifelse(!is.na(sold) & (sold == 1),
# "Train", "Test"))
# glb_allobs_df <- mutate_(glb_allobs_df,
# .src=interp(ifelse(eval(parse(text="!is.na(sold) & (sold == 1)")),
# "Train", "Test")))
# glb_allobs_df <- within(glb_allobs_df, {
# .src <- ifelse(eval(parse(text="!is.na(sold) & (sold == 1)")),
# "Train", "Test")
# })
# glb_allobs_df <- within(glb_allobs_df, {
# if(eval(parse(text="!is.na(sold) & (sold == 1)"))) .src <- "Train" else
# .src <- "Test"
# })
# with(glb_allobs_df, {
# src <- ifelse(eval(parse(text="!is.na(sold) & (sold == 1)")),
# "Train", "Test")
# })
# glb_allobs_df$.src <- sapply(1:nrow(glb_allobs_df), function (row_ix) ifelse)
# glb_allobs_df[parse(text=paste0("!(", glbObsDropCondition, ")")), ".src"] <- do.call("subset",
# list(glb_allobs_df, ))
glb_trnobs_df <- do.call("subset", list(glb_allobs_df,
parse(text=paste0(" (", glb_obs_repartition_train_condition, ")"))))
glb_trnobs_df$.src <- "Train"
glb_newobs_df <- do.call("subset", list(glb_allobs_df,
parse(text=paste0("!(", glb_obs_repartition_train_condition, ")"))))
glb_newobs_df$.src <- "Test"
glb_allobs_df <- rbind(glb_trnobs_df, glb_newobs_df)
dsp_partition_stats(obs_df = glb_allobs_df,
vars = myget_symbols(glb_obs_repartition_train_condition))
}
glb_chunks_df <- myadd_chunk(glb_chunks_df, "inspect.data", major.inc=TRUE)
## label step_major step_minor label_minor bgn end elapsed
## 1 import.data 1 0 0 10.30 26.379 16.08
## 2 inspect.data 2 0 0 26.38 NA NA
2.0: inspect data#print(str(glb_allobs_df))
#View(glb_allobs_df)
dsp_class_dstrb <- function(var) {
xtab_df <- mycreate_xtab_df(glb_allobs_df, c(".src", var))
rownames(xtab_df) <- xtab_df$.src
xtab_df <- subset(xtab_df, select=-.src)
print(xtab_df)
print(xtab_df / rowSums(xtab_df, na.rm=TRUE))
}
# Performed repeatedly in other chunks
glb_chk_data <- function(featsExclude = glbFeatsExclude,
fctrMaxUniqVals = glbFctrMaxUniqVals) {
# Histogram of predictor in glb_trnobs_df & glb_newobs_df
print(myplot_histogram(glb_allobs_df, glb_rsp_var_raw) + facet_wrap(~ .src))
if (glb_is_classification)
dsp_class_dstrb(var=ifelse(glb_rsp_var %in% names(glb_allobs_df),
glb_rsp_var, glb_rsp_var_raw))
mycheck_problem_data(glb_allobs_df, featsExclude, fctrMaxUniqVals)
}
glb_chk_data()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 798 rows containing non-finite values (stat_bin).
## Loading required package: reshape2
## sold.0 sold.1 sold.NA
## Test NA NA 798
## Train 995 855 NA
## sold.0 sold.1 sold.NA
## Test NA NA 1
## Train 0.5378378 0.4621622 NA
## [1] "numeric data missing in : "
## sold
## 798
## [1] "numeric data w/ 0s in : "
## biddable sold
## 1437 995
## [1] "numeric data w/ Infs in : "
## named integer(0)
## [1] "numeric data w/ NaNs in : "
## named integer(0)
## [1] "string data missing in : "
## description condition cellular carrier color storage
## 1513 0 0 0 0 0
## productline .grpid
## 0 NA
# Create new features that help diagnostics
if (!is.null(glb_map_rsp_raw_to_var)) {
glb_allobs_df[, glb_rsp_var] <-
glb_map_rsp_raw_to_var(glb_allobs_df[, glb_rsp_var_raw])
mycheck_map_results(mapd_df=glb_allobs_df,
from_col_name=glb_rsp_var_raw, to_col_name=glb_rsp_var)
if (glb_is_classification) dsp_class_dstrb(glb_rsp_var)
}
## sold sold.fctr .n
## 1 0 N 995
## 2 1 Y 855
## 3 NA <NA> 798
## Warning: Removed 1 rows containing missing values (position_stack).
## sold.fctr.N sold.fctr.Y sold.fctr.NA
## Test NA NA 798
## Train 995 855 NA
## sold.fctr.N sold.fctr.Y sold.fctr.NA
## Test NA NA 1
## Train 0.5378378 0.4621622 NA
# check distribution of all numeric data
dsp_numeric_feats_dstrb <- function(feats_vctr) {
grid.newpage()
pushViewport(viewport(layout = grid.layout(ceiling(length(feats_vctr) / 2.0), 2)))
pltIx <- 1
for (feat in feats_vctr) {
#print(sprintf("feat: %s", feat))
if (glb_is_regression)
gp <- myplot_scatter(df=glb_allobs_df, ycol_name=glb_rsp_var, xcol_name=feat,
smooth=TRUE)
if (glb_is_classification)
#gp <- myplot_box(df=glb_allobs_df, ycol_names=feat, xcol_name=glb_rsp_var)
gp <- myplot_violin(glb_allobs_df, ycol_names = feat, xcol_name = glb_rsp_var)
if (inherits(glb_allobs_df[, feat], "factor"))
gp <- gp + facet_wrap(reformulate(feat))
print(gp + labs(title = feat),
vp = viewport(layout.pos.row = ceiling(pltIx / 2.0),
layout.pos.col = ((pltIx - 1) %% 2) + 1))
pltIx <- pltIx + 1
}
}
# dsp_numeric_feats_dstrb(setdiff(names(glb_allobs_df), union(myfind_chr_cols_df(glb_allobs_df), c(glb_rsp_var_raw, glb_rsp_var)))[2:6]) # dsp_numeric_feats_dstrb(c("startprice", "sprice.root3", "sprice.predict.diff"))
add_new_diag_feats <- function(obs_df, ref_df=glb_allobs_df) {
require(plyr)
set.seed(169)
obs_df <- mutate(obs_df,
# <col_name>.NA=is.na(<col_name>),
# <col_name>.fctr=factor(<col_name>,
# as.factor(union(obs_df$<col_name>, obs_twin_df$<col_name>))),
# <col_name>.fctr=relevel(factor(<col_name>,
# as.factor(union(obs_df$<col_name>, obs_twin_df$<col_name>))),
# "<ref_val>"),
# <col2_name>.fctr=relevel(factor(ifelse(<col1_name> == <val>, "<oth_val>", "<ref_val>")),
# as.factor(c("R", "<ref_val>")),
# ref="<ref_val>"),
# This doesn't work - use sapply instead
# <col_name>.fctr_num=grep(<col_name>, levels(<col_name>.fctr)),
#
# Date.my=as.Date(strptime(Date, "%m/%d/%y %H:%M")),
# Year=year(Date.my),
# Month=months(Date.my),
# Weekday=weekdays(Date.my)
# <col_name>=<table>[as.character(<col2_name>)],
# <col_name>=as.numeric(<col2_name>),
# <col_name> = trunc(<col2_name> / 100),
.rnorm = rnorm(n=nrow(obs_df))
)
# If levels of a factor are different across obs_df & glb_newobs_df; predict.glm fails
# Transformations not handled by mutate
# obs_df$<col_name>.fctr.num <- sapply(1:nrow(obs_df),
# function(row_ix) grep(obs_df[row_ix, "<col_name>"],
# levels(obs_df[row_ix, "<col_name>.fctr"])))
#print(summary(obs_df))
#print(sapply(names(obs_df), function(col) sum(is.na(obs_df[, col]))))
return(obs_df)
}
glb_allobs_df <- add_new_diag_feats(glb_allobs_df)
## Loading required package: plyr
require(dplyr)
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
##
## The following objects are masked from 'package:plyr':
##
## arrange, count, desc, failwith, id, mutate, rename, summarise,
## summarize
##
## The following objects are masked from 'package:gdata':
##
## combine, first, last
##
## The following objects are masked from 'package:stats':
##
## filter, lag
##
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#stop(here"); sav_allobs_df <- glb_allobs_df # glb_allobs_df <- sav_allobs_df
# Merge some <descriptor>
# glb_allobs_df$<descriptor>.my <- glb_allobs_df$<descriptor>
# glb_allobs_df[grepl("\\bAIRPORT\\b", glb_allobs_df$<descriptor>.my),
# "<descriptor>.my"] <- "AIRPORT"
# Check distributions of newly transformed / extracted vars
# Enhancement: remove vars that were displayed ealier
dsp_numeric_feats_dstrb(feats_vctr=setdiff(names(glb_allobs_df),
c(myfind_chr_cols_df(glb_allobs_df), glb_rsp_var_raw, glb_rsp_var,
glbFeatsExclude)))
# Convert factors to dummy variables
# Build splines require(splines); bsBasis <- bs(training$age, df=3)
#pairs(subset(glb_trnobs_df, select=-c(col_symbol)))
# Check for glb_newobs_df & glb_trnobs_df features range mismatches
# Other diagnostics:
# print(subset(glb_trnobs_df, <col1_name> == max(glb_trnobs_df$<col1_name>, na.rm=TRUE) &
# <col2_name> <= mean(glb_trnobs_df$<col1_name>, na.rm=TRUE)))
# print(glb_trnobs_df[which.max(glb_trnobs_df$<col_name>),])
# print(<col_name>_freq_glb_trnobs_df <- mycreate_tbl_df(glb_trnobs_df, "<col_name>"))
# print(which.min(table(glb_trnobs_df$<col_name>)))
# print(which.max(table(glb_trnobs_df$<col_name>)))
# print(which.max(table(glb_trnobs_df$<col1_name>, glb_trnobs_df$<col2_name>)[, 2]))
# print(table(glb_trnobs_df$<col1_name>, glb_trnobs_df$<col2_name>))
# print(table(is.na(glb_trnobs_df$<col1_name>), glb_trnobs_df$<col2_name>))
# print(table(sign(glb_trnobs_df$<col1_name>), glb_trnobs_df$<col2_name>))
# print(mycreate_xtab_df(glb_trnobs_df, <col1_name>))
# print(mycreate_xtab_df(glb_trnobs_df, c(<col1_name>, <col2_name>)))
# print(<col1_name>_<col2_name>_xtab_glb_trnobs_df <-
# mycreate_xtab_df(glb_trnobs_df, c("<col1_name>", "<col2_name>")))
# <col1_name>_<col2_name>_xtab_glb_trnobs_df[is.na(<col1_name>_<col2_name>_xtab_glb_trnobs_df)] <- 0
# print(<col1_name>_<col2_name>_xtab_glb_trnobs_df <-
# mutate(<col1_name>_<col2_name>_xtab_glb_trnobs_df,
# <col3_name>=(<col1_name> * 1.0) / (<col1_name> + <col2_name>)))
# print(mycreate_sqlxtab_df(glb_allobs_df, c("<col1_name>", "<col2_name>")))
# print(<col2_name>_min_entity_arr <-
# sort(tapply(glb_trnobs_df$<col1_name>, glb_trnobs_df$<col2_name>, min, na.rm=TRUE)))
# print(<col1_name>_na_by_<col2_name>_arr <-
# sort(tapply(glb_trnobs_df$<col1_name>.NA, glb_trnobs_df$<col2_name>, mean, na.rm=TRUE)))
# Other plots:
# print(myplot_box(df=glb_trnobs_df, ycol_names="<col1_name>"))
# print(myplot_box(df=glb_trnobs_df, ycol_names="<col1_name>", xcol_name="<col2_name>"))
# print(myplot_line(subset(glb_trnobs_df, Symbol %in% c("CocaCola", "ProcterGamble")),
# "Date.POSIX", "StockPrice", facet_row_colnames="Symbol") +
# geom_vline(xintercept=as.numeric(as.POSIXlt("2003-03-01"))) +
# geom_vline(xintercept=as.numeric(as.POSIXlt("1983-01-01")))
# )
# print(myplot_line(subset(glb_trnobs_df, Date.POSIX > as.POSIXct("2004-01-01")),
# "Date.POSIX", "StockPrice") +
# geom_line(aes(color=Symbol)) +
# coord_cartesian(xlim=c(as.POSIXct("1990-01-01"),
# as.POSIXct("2000-01-01"))) +
# coord_cartesian(ylim=c(0, 250)) +
# geom_vline(xintercept=as.numeric(as.POSIXlt("1997-09-01"))) +
# geom_vline(xintercept=as.numeric(as.POSIXlt("1997-11-01")))
# )
# print(myplot_scatter(glb_allobs_df, "<col1_name>", "<col2_name>", smooth=TRUE))
# print(myplot_scatter(glb_allobs_df, "<col1_name>", "<col2_name>", colorcol_name="<Pred.fctr>") +
# geom_point(data=subset(glb_allobs_df, <condition>),
# mapping=aes(x=<x_var>, y=<y_var>), color="red", shape=4, size=5) +
# geom_vline(xintercept=84))
glb_chunks_df <- myadd_chunk(glb_chunks_df, "scrub.data", major.inc=FALSE)
## label step_major step_minor label_minor bgn end elapsed
## 2 inspect.data 2 0 0 26.380 30.902 4.522
## 3 scrub.data 2 1 1 30.902 NA NA
2.1: scrub datamycheck_problem_data(glb_allobs_df, featsExclude = glbFeatsExclude,
fctrMaxUniqVals = glbFctrMaxUniqVals)
## [1] "numeric data missing in : "
## sold sold.fctr
## 798 798
## [1] "numeric data w/ 0s in : "
## biddable sold
## 1437 995
## [1] "numeric data w/ Infs in : "
## named integer(0)
## [1] "numeric data w/ NaNs in : "
## named integer(0)
## [1] "string data missing in : "
## description condition cellular carrier color storage
## 1513 0 0 0 0 0
## productline .grpid
## 0 NA
findOffendingCharacter <- function(x, maxStringLength=256){
print(x)
for (c in 1:maxStringLength){
offendingChar <- substr(x,c,c)
#print(offendingChar) #uncomment if you want the indiv characters printed
#the next character is the offending multibyte Character
}
}
# string_vector <- c("test", "Se\x96ora", "works fine")
# lapply(string_vector, findOffendingCharacter)
# lapply(glb_allobs_df$description[29], findOffendingCharacter)
dsp_hdlxtab <- function(str)
print(mycreate_sqlxtab_df(glb_allobs_df[sel_obs(Headline.contains=str), ],
c("Headline.pfx", "Headline", glb_rsp_var)))
#dsp_hdlxtab("(1914)|(1939)")
dsp_catxtab <- function(str)
print(mycreate_sqlxtab_df(glb_allobs_df[sel_obs(Headline.contains=str), ],
c("Headline.pfx", "NewsDesk", "SectionName", "SubsectionName", glb_rsp_var)))
# dsp_catxtab("1914)|(1939)")
# dsp_catxtab("19(14|39|64):")
# dsp_catxtab("19..:")
# Merge some categories
# glb_allobs_df$myCategory <-
# plyr::revalue(glb_allobs_df$myCategory, c(
# "#Business Day#Dealbook" = "Business#Business Day#Dealbook",
# "#Business Day#Small Business" = "Business#Business Day#Small Business",
# "dummy" = "dummy"
# ))
# ctgry_xtab_df <- orderBy(reformulate(c("-", ".n")),
# mycreate_sqlxtab_df(glb_allobs_df,
# c("myCategory", "NewsDesk", "SectionName", "SubsectionName", glb_rsp_var)))
# myprint_df(ctgry_xtab_df)
# write.table(ctgry_xtab_df, paste0(glb_out_pfx, "ctgry_xtab.csv"),
# row.names=FALSE)
# ctgry_cast_df <- orderBy(~ -Y -NA, dcast(ctgry_xtab_df,
# myCategory + NewsDesk + SectionName + SubsectionName ~
# Popular.fctr, sum, value.var=".n"))
# myprint_df(ctgry_cast_df)
# write.table(ctgry_cast_df, paste0(glb_out_pfx, "ctgry_cast.csv"),
# row.names=FALSE)
# print(ctgry_sum_tbl <- table(glb_allobs_df$myCategory, glb_allobs_df[, glb_rsp_var],
# useNA="ifany"))
dsp_chisq.test <- function(...) {
sel_df <- glb_allobs_df[sel_obs(...) &
!is.na(glb_allobs_df$Popular), ]
sel_df$.marker <- 1
ref_df <- glb_allobs_df[!is.na(glb_allobs_df$Popular), ]
mrg_df <- merge(ref_df[, c(glb_id_var, "Popular")],
sel_df[, c(glb_id_var, ".marker")], all.x=TRUE)
mrg_df[is.na(mrg_df)] <- 0
print(mrg_tbl <- table(mrg_df$.marker, mrg_df$Popular))
print("Rows:Selected; Cols:Popular")
#print(mrg_tbl)
print(chisq.test(mrg_tbl))
}
# dsp_chisq.test(Headline.contains="[Ee]bola")
# dsp_chisq.test(Snippet.contains="[Ee]bola")
# dsp_chisq.test(Abstract.contains="[Ee]bola")
# print(mycreate_sqlxtab_df(glb_allobs_df[sel_obs(Headline.contains="[Ee]bola"), ],
# c(glb_rsp_var, "NewsDesk", "SectionName", "SubsectionName")))
# print(table(glb_allobs_df$NewsDesk, glb_allobs_df$SectionName))
# print(table(glb_allobs_df$SectionName, glb_allobs_df$SubsectionName))
# print(table(glb_allobs_df$NewsDesk, glb_allobs_df$SectionName, glb_allobs_df$SubsectionName))
# glb_allobs_df$myCategory.fctr <- as.factor(glb_allobs_df$myCategory)
print(table(glb_allobs_df$cellular, glb_allobs_df$carrier, useNA="ifany"))
##
## AT&T None Other Sprint T-Mobile Unknown Verizon
## 0 0 1586 0 0 0 0 0
## 1 288 0 3 36 28 172 196
## Unknown 4 4 2 0 0 329 0
# glb_allobs_df[(glb_allobs_df$cellular %in% c("Unknown")) &
# (glb_allobs_df$carrier %in% c("AT&T", "Other")),
# c(glb_id_var, glb_rsp_var_raw, "description", "carrier", "cellular")]
glb_allobs_df[(glb_allobs_df$cellular %in% c("Unknown")) &
(glb_allobs_df$carrier %in% c("AT&T", "Other")),
"cellular"] <- "1"
# glb_allobs_df[(glb_allobs_df$cellular %in% c("Unknown")) &
# (glb_allobs_df$carrier %in% c("None")),
# c(glb_id_var, glb_rsp_var_raw, "description", "carrier", "cellular")]
glb_allobs_df[(glb_allobs_df$cellular %in% c("Unknown")) &
(glb_allobs_df$carrier %in% c("None")),
"cellular"] <- "0"
print(table(glb_allobs_df$cellular, glb_allobs_df$carrier, useNA="ifany"))
##
## AT&T None Other Sprint T-Mobile Unknown Verizon
## 0 0 1590 0 0 0 0 0
## 1 292 0 5 36 28 172 196
## Unknown 0 0 0 0 0 329 0
2.1: scrub dataglb_chunks_df <- myadd_chunk(glb_chunks_df, "transform.data", major.inc=FALSE)
## label step_major step_minor label_minor bgn end elapsed
## 3 scrub.data 2 1 1 30.902 31.943 1.042
## 4 transform.data 2 2 2 31.944 NA NA
### Mapping dictionary
#sav_allobs_df <- glb_allobs_df; glb_allobs_df <- sav_allobs_df
if (!is.null(glb_map_vars)) {
for (feat in glb_map_vars) {
map_df <- myimport_data(url=glb_map_urls[[feat]],
comment="map_df",
print_diagn=TRUE)
glb_allobs_df <- mymap_codes(glb_allobs_df, feat, names(map_df)[2],
map_df, map_join_col_name=names(map_df)[1],
map_tgt_col_name=names(map_df)[2])
}
glbFeatsExclude <- union(glbFeatsExclude, glb_map_vars)
}
### Forced Assignments
#stop(here"); sav_allobs_df <- glb_allobs_df; glb_allobs_df <- sav_allobs_df
for (feat in glb_assign_vars) {
new_feat <- paste0(feat, ".my")
print(sprintf("Forced Assignments for: %s -> %s...", feat, new_feat))
glb_allobs_df[, new_feat] <- glb_allobs_df[, feat]
pairs <- glb_assign_pairs_lst[[feat]]
for (pair_ix in 1:length(pairs$from)) {
if (is.na(pairs$from[pair_ix]))
nobs <- nrow(filter(glb_allobs_df,
is.na(eval(parse(text=feat),
envir=glb_allobs_df)))) else
nobs <- sum(glb_allobs_df[, feat] == pairs$from[pair_ix])
#nobs <- nrow(filter(glb_allobs_df, is.na(Married.fctr))) ; print(nobs)
if ((is.na(pairs$from[pair_ix])) && (is.na(pairs$to[pair_ix])))
stop("what are you trying to do ???")
if (is.na(pairs$from[pair_ix]))
glb_allobs_df[is.na(glb_allobs_df[, feat]), new_feat] <-
pairs$to[pair_ix] else
glb_allobs_df[glb_allobs_df[, feat] == pairs$from[pair_ix], new_feat] <-
pairs$to[pair_ix]
print(sprintf(" %s -> %s for %s obs",
pairs$from[pair_ix], pairs$to[pair_ix], format(nobs, big.mark=",")))
}
glbFeatsExclude <- union(glbFeatsExclude, glb_assign_vars)
}
### Derivations using mapping functions
#stop(here"); sav_allobs_df <- glb_allobs_df; glb_allobs_df <- sav_allobs_df
for (new_feat in glb_derive_vars) {
print(sprintf("Creating new feature: %s...", new_feat))
args_lst <- NULL
for (arg in glbFeatsDerive[[new_feat]]$args)
args_lst[[arg]] <- glb_allobs_df[, arg]
glb_allobs_df[, new_feat] <- do.call(glbFeatsDerive[[new_feat]]$mapfn, args_lst)
}
## [1] "Creating new feature: sprice.root2..."
## [1] "Creating new feature: sprice.log10..."
## [1] "Creating new feature: sprice.d20nexp..."
## [1] "Creating new feature: sprice.predict.diff..."
## [1] "Creating new feature: spdiff.cut.fctr..."
## [1] "Creating new feature: descr.my..."
## [1] "Creating new feature: prdl.my.fctr..."
#stop(here")
#hex_vctr <- c("\n", "\211", "\235", "\317", "\333")
hex_regex <- paste0(c("\n", "\211", "\235", "\317", "\333"), collapse="|")
for (obs_id in c(10029, 10948, 10136, 10178, 11514, 11904, 12157, 12210, 12659)) {
# tmp_str <- unlist(strsplit(glb_allobs_df[row_pos, "descr.my"], ""))
# glb_allobs_df[row_pos, "descr.my"] <- paste0(tmp_str[!tmp_str %in% hex_vctr],
# collapse="")
row_pos <- which(glb_allobs_df$UniqueID == obs_id)
# glb_allobs_df[row_pos, "descr.my"] <-
# gsub(hex_regex, " ", glb_allobs_df[row_pos, "descr.my"])
}
2.2: transform data#```{r extract_features, cache=FALSE, eval=!is.null(glbFeatsText)}
glb_chunks_df <- myadd_chunk(glb_chunks_df, "extract.features", major.inc=TRUE)
## label step_major step_minor label_minor bgn end elapsed
## 4 transform.data 2 2 2 31.944 32.543 0.599
## 5 extract.features 3 0 0 32.543 NA NA
extract.features_chunk_df <- myadd_chunk(NULL, "extract.features_bgn")
## label step_major step_minor label_minor bgn end
## 1 extract.features_bgn 1 0 0 32.551 NA
## elapsed
## 1 NA
# Create new features that help prediction
# <col_name>.lag.2 <- lag(zoo(glb_trnobs_df$<col_name>), -2, na.pad=TRUE)
# glb_trnobs_df[, "<col_name>.lag.2"] <- coredata(<col_name>.lag.2)
# <col_name>.lag.2 <- lag(zoo(glb_newobs_df$<col_name>), -2, na.pad=TRUE)
# glb_newobs_df[, "<col_name>.lag.2"] <- coredata(<col_name>.lag.2)
#
# glb_newobs_df[1, "<col_name>.lag.2"] <- glb_trnobs_df[nrow(glb_trnobs_df) - 1,
# "<col_name>"]
# glb_newobs_df[2, "<col_name>.lag.2"] <- glb_trnobs_df[nrow(glb_trnobs_df),
# "<col_name>"]
# glb_allobs_df <- mutate(glb_allobs_df,
# A.P.http=ifelse(grepl("http",Added,fixed=TRUE), 1, 0)
# )
#
# glb_trnobs_df <- mutate(glb_trnobs_df,
# )
#
# glb_newobs_df <- mutate(glb_newobs_df,
# )
# Convert dates to numbers
# typically, dates come in as chars;
# so this must be done before converting chars to factors
#stop(here"); sav_allobs_df <- glb_allobs_df #; glb_allobs_df <- sav_allobs_df
if (!is.null(glb_date_vars)) {
glb_allobs_df <- cbind(glb_allobs_df,
myextract_dates_df(df=glb_allobs_df, vars=glb_date_vars,
id_vars=glb_id_var, rsp_var=glb_rsp_var))
for (sfx in c("", ".POSIX"))
glbFeatsExclude <-
union(glbFeatsExclude,
paste(glb_date_vars, sfx, sep=""))
for (feat in glb_date_vars) {
glb_allobs_df <- orderBy(reformulate(paste0(feat, ".POSIX")), glb_allobs_df)
# print(myplot_scatter(glb_allobs_df, xcol_name=paste0(feat, ".POSIX"),
# ycol_name=glb_rsp_var, colorcol_name=glb_rsp_var))
print(myplot_scatter(glb_allobs_df[glb_allobs_df[, paste0(feat, ".POSIX")] >=
strptime("2012-12-01", "%Y-%m-%d"), ],
xcol_name=paste0(feat, ".POSIX"),
ycol_name=glb_rsp_var, colorcol_name=paste0(feat, ".wkend")))
# Create features that measure the gap between previous timestamp in the data
require(zoo)
z <- zoo(as.numeric(as.POSIXlt(glb_allobs_df[, paste0(feat, ".POSIX")])))
glb_allobs_df[, paste0(feat, ".zoo")] <- z
print(head(glb_allobs_df[, c(glb_id_var, feat, paste0(feat, ".zoo"))]))
print(myplot_scatter(glb_allobs_df[glb_allobs_df[, paste0(feat, ".POSIX")] >
strptime("2012-10-01", "%Y-%m-%d"), ],
xcol_name=paste0(feat, ".zoo"), ycol_name=glb_rsp_var,
colorcol_name=glb_rsp_var))
b <- zoo(, seq(nrow(glb_allobs_df)))
last1 <- as.numeric(merge(z-lag(z, -1), b, all=TRUE)); last1[is.na(last1)] <- 0
glb_allobs_df[, paste0(feat, ".last1.log")] <- log(1 + last1)
print(gp <- myplot_box(df=glb_allobs_df[glb_allobs_df[,
paste0(feat, ".last1.log")] > 0, ],
ycol_names=paste0(feat, ".last1.log"),
xcol_name=glb_rsp_var))
last2 <- as.numeric(merge(z-lag(z, -2), b, all=TRUE)); last2[is.na(last2)] <- 0
glb_allobs_df[, paste0(feat, ".last2.log")] <- log(1 + last2)
print(gp <- myplot_box(df=glb_allobs_df[glb_allobs_df[,
paste0(feat, ".last2.log")] > 0, ],
ycol_names=paste0(feat, ".last2.log"),
xcol_name=glb_rsp_var))
last10 <- as.numeric(merge(z-lag(z, -10), b, all=TRUE)); last10[is.na(last10)] <- 0
glb_allobs_df[, paste0(feat, ".last10.log")] <- log(1 + last10)
print(gp <- myplot_box(df=glb_allobs_df[glb_allobs_df[,
paste0(feat, ".last10.log")] > 0, ],
ycol_names=paste0(feat, ".last10.log"),
xcol_name=glb_rsp_var))
last100 <- as.numeric(merge(z-lag(z, -100), b, all=TRUE)); last100[is.na(last100)] <- 0
glb_allobs_df[, paste0(feat, ".last100.log")] <- log(1 + last100)
print(gp <- myplot_box(df=glb_allobs_df[glb_allobs_df[,
paste0(feat, ".last100.log")] > 0, ],
ycol_names=paste0(feat, ".last100.log"),
xcol_name=glb_rsp_var))
glb_allobs_df <- orderBy(reformulate(glb_id_var), glb_allobs_df)
glbFeatsExclude <- union(glbFeatsExclude,
c(paste0(feat, ".zoo")))
# all2$last3 = as.numeric(merge(z-lag(z, -3), b, all = TRUE))
# all2$last5 = as.numeric(merge(z-lag(z, -5), b, all = TRUE))
# all2$last10 = as.numeric(merge(z-lag(z, -10), b, all = TRUE))
# all2$last20 = as.numeric(merge(z-lag(z, -20), b, all = TRUE))
# all2$last50 = as.numeric(merge(z-lag(z, -50), b, all = TRUE))
#
#
# # order table
# all2 = all2[order(all2$id),]
#
# ## fill in NAs
# # count averages
# na.avg = all2 %>% group_by(weekend, hour) %>% dplyr::summarise(
# last1=mean(last1, na.rm=TRUE),
# last3=mean(last3, na.rm=TRUE),
# last5=mean(last5, na.rm=TRUE),
# last10=mean(last10, na.rm=TRUE),
# last20=mean(last20, na.rm=TRUE),
# last50=mean(last50, na.rm=TRUE)
# )
#
# # fill in averages
# na.merge = merge(all2, na.avg, by=c("weekend","hour"))
# na.merge = na.merge[order(na.merge$id),]
# for(i in c("last1", "last3", "last5", "last10", "last20", "last50")) {
# y = paste0(i, ".y")
# idx = is.na(all2[[i]])
# all2[idx,][[i]] <- na.merge[idx,][[y]]
# }
# rm(na.avg, na.merge, b, i, idx, n, pd, sec, sh, y, z)
}
}
rm(last1, last10, last100)
## Warning in rm(last1, last10, last100): object 'last1' not found
## Warning in rm(last1, last10, last100): object 'last10' not found
## Warning in rm(last1, last10, last100): object 'last100' not found
# Create factors of string variables
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "factorize.str.vars"), major.inc=TRUE)
## label step_major step_minor label_minor
## 1 extract.features_bgn 1 0 0
## 2 extract.features_factorize.str.vars 2 0 0
## bgn end elapsed
## 1 32.551 32.569 0.018
## 2 32.570 NA NA
#stop(here"); sav_allobs_df <- glb_allobs_df; #glb_allobs_df <- sav_allobs_df
print(str_vars <- myfind_chr_cols_df(glb_allobs_df))
## description condition cellular carrier color
## "description" "condition" "cellular" "carrier" "color"
## storage productline .src .grpid descr.my
## "storage" "productline" ".src" ".grpid" "descr.my"
if (length(str_vars <- setdiff(str_vars,
c(glbFeatsExclude, glbFeatsText))) > 0) {
for (var in str_vars) {
warning("Creating factors of string variable: ", var,
": # of unique values: ", length(unique(glb_allobs_df[, var])))
glb_allobs_df[, paste0(var, ".fctr")] <-
relevel(factor(glb_allobs_df[, var]),
names(which.max(table(glb_allobs_df[, var], useNA = "ifany"))))
}
glbFeatsExclude <- union(glbFeatsExclude, str_vars)
}
## Warning: Creating factors of string variable: condition: # of unique
## values: 6
## Warning: Creating factors of string variable: cellular: # of unique values:
## 3
## Warning: Creating factors of string variable: carrier: # of unique values:
## 7
## Warning: Creating factors of string variable: color: # of unique values: 5
## Warning: Creating factors of string variable: storage: # of unique values:
## 5
if (!is.null(glbFeatsText)) {
require(foreach)
require(gsubfn)
require(stringr)
require(tm)
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "process.text"), major.inc=TRUE)
chk_pattern_freq <- function(rex_str, ignore.case=TRUE) {
match_mtrx <- str_extract_all(txt_vctr, regex(rex_str, ignore_case=ignore.case),
simplify=TRUE)
match_df <- as.data.frame(match_mtrx[match_mtrx != ""])
names(match_df) <- "pattern"
return(mycreate_sqlxtab_df(match_df, "pattern"))
}
# match_lst <- gregexpr("\\bok(?!ay)", txt_vctr[746], ignore.case = FALSE, perl=TRUE); print(match_lst)
dsp_pattern <- function(rex_str, ignore.case=TRUE, print.all=TRUE) {
match_lst <- gregexpr(rex_str, txt_vctr, ignore.case = ignore.case, perl=TRUE)
match_lst <- regmatches(txt_vctr, match_lst)
match_df <- data.frame(matches=sapply(match_lst,
function (elems) paste(elems, collapse="#")))
match_df <- subset(match_df, matches != "")
if (print.all)
print(match_df)
return(match_df)
}
dsp_matches <- function(rex_str, ix) {
print(match_pos <- gregexpr(rex_str, txt_vctr[ix], perl=TRUE))
print(str_sub(txt_vctr[ix], (match_pos[[1]] / 100) * 99 + 0,
(match_pos[[1]] / 100) * 100 + 100))
}
myapply_gsub <- function(...) {
if ((length_lst <- length(names(gsub_map_lst))) == 0)
return(txt_vctr)
for (ptn_ix in 1:length_lst) {
if ((ptn_ix %% 10) == 0)
print(sprintf("running gsub for %02d (of %02d): #%s#...", ptn_ix,
length(names(gsub_map_lst)), names(gsub_map_lst)[ptn_ix]))
txt_vctr <- gsub(names(gsub_map_lst)[ptn_ix], gsub_map_lst[[ptn_ix]],
txt_vctr, ...)
}
return(txt_vctr)
}
myapply_txtmap <- function(txt_vctr, ...) {
nrows <- nrow(glb_txt_map_df)
for (ptn_ix in 1:nrows) {
if ((ptn_ix %% 10) == 0)
print(sprintf("running gsub for %02d (of %02d): #%s#...", ptn_ix,
nrows, glb_txt_map_df[ptn_ix, "rex_str"]))
txt_vctr <- gsub(glb_txt_map_df[ptn_ix, "rex_str"],
glb_txt_map_df[ptn_ix, "rpl_str"],
txt_vctr, ...)
}
return(txt_vctr)
#print(txt_vctr <- glb_allobs_df[glb_allobs_df$UniqueID == 11329, "descr.my"])
#strsplit(txt_vctr, "")[[1]][1]
#ptn_ix <- 2; glb_txt_map_df[ptn_ix, ]
#gsub(glb_txt_map_df[ptn_ix, "rex_str"], glb_txt_map_df[ptn_ix, "rpl_str"], txt_vctr)
#print(match_lst <- gregexpr(glb_txt_map_df[ptn_ix, "rex_str"], txt_vctr))
#strsplit(glb_txt_map_df[ptn_ix, "rex_str"], "")[[1]]
}
chk.equal <- function(bgn, end) {
print(all.equal(sav_txt_lst[["Headline"]][bgn:end],
glb_txt_chr_lst[["Headline"]][bgn:end]))
}
dsp.equal <- function(bgn, end) {
print(sav_txt_lst[["Headline"]][bgn:end])
print(glb_txt_chr_lst[["Headline"]][bgn:end])
}
#sav_txt_lst <- glb_txt_chr_lst; all.equal(sav_txt_lst, glb_txt_chr_lst)
#all.equal(sav_txt_lst[["Headline"]][1:4200], glb_txt_chr_lst[["Headline"]][1:4200])
#chk.equal( 1, 100)
#dsp.equal(86, 90)
txt_map_filename <- paste0(glb_txt_munge_filenames_pfx, "map.csv")
if (!file.exists(txt_map_filename))
stop(txt_map_filename, " not found!")
glb_txt_map_df <- read.csv(txt_map_filename, comment.char="#", strip.white=TRUE)
glb_txt_chr_lst <- list();
print(sprintf("Building glb_txt_chr_lst..."))
glb_txt_chr_lst <- foreach(txt_var = glbFeatsText) %dopar% {
# for (txt_var in glbFeatsText) {
txt_vctr <- glb_allobs_df[, txt_var]
names(txt_vctr) <- glb_allobs_df[, glb_id_var]
# myapply_txtmap shd be created as a tm_map::content_transformer ?
#print(glb_txt_map_df)
#txt_var=glbFeatsText[3]; txt_vctr <- glb_txt_chr_lst[[txt_var]]
#print(rex_str <- glb_txt_map_df[3, "rex_str"])
#print(rex_str <- glb_txt_map_df[glb_txt_map_df$rex_str == "\\bWall St\\.", "rex_str"])
#print(rex_str <- glb_txt_map_df[grepl("du Pont", glb_txt_map_df$rex_str), "rex_str"])
#print(rex_str <- glb_txt_map_df[glb_txt_map_df$rpl_str == "versus", "rex_str"])
#print(tmp_vctr <- grep(rex_str, txt_vctr, value=TRUE, ignore.case=FALSE))
#ret_lst <- regexec(rex_str, txt_vctr, ignore.case=FALSE); ret_lst <- regmatches(txt_vctr, ret_lst); ret_vctr <- sapply(1:length(ret_lst), function(pos_ix) ifelse(length(ret_lst[[pos_ix]]) > 0, ret_lst[[pos_ix]], "")); print(ret_vctr <- ret_vctr[ret_vctr != ""])
#gsub(rex_str, glb_txt_map_df[glb_txt_map_df$rex_str == rex_str, "rpl_str"], tmp_vctr, ignore.case=FALSE)
#grep("Hong Hong", txt_vctr, value=TRUE)
txt_vctr <- myapply_txtmap(txt_vctr, ignore.case=FALSE)
}
names(glb_txt_chr_lst) <- glbFeatsText
for (txt_var in glbFeatsText) {
print(sprintf("Remaining OK in %s:", txt_var))
txt_vctr <- glb_txt_chr_lst[[txt_var]]
print(chk_pattern_freq(rex_str <- "(?<!(BO|HO|LO))OK(?!(E\\!|ED|IE|IN|S ))",
ignore.case=FALSE))
match_df <- dsp_pattern(rex_str, ignore.case=FALSE, print.all=FALSE)
for (row in row.names(match_df))
dsp_matches(rex_str, ix=as.numeric(row))
print(chk_pattern_freq(rex_str <- "Ok(?!(a\\.|ay|in|ra|um))", ignore.case=FALSE))
match_df <- dsp_pattern(rex_str, ignore.case=FALSE, print.all=FALSE)
for (row in row.names(match_df))
dsp_matches(rex_str, ix=as.numeric(row))
print(chk_pattern_freq(rex_str <- "(?<!( b| B| c| C| g| G| j| M| p| P| w| W| r| Z|\\(b|ar|bo|Bo|co|Co|Ew|gk|go|ho|ig|jo|kb|ke|Ke|ki|lo|Lo|mo|mt|no|No|po|ra|ro|sm|Sm|Sp|to|To))ok(?!(ay|bo|e |e\\)|e,|e\\.|eb|ed|el|en|er|es|ey|i |ie|in|it|ka|ke|ki|ly|on|oy|ra|st|u |uc|uy|yl|yo))",
ignore.case=FALSE))
match_df <- dsp_pattern(rex_str, ignore.case=FALSE, print.all=FALSE)
for (row in row.names(match_df))
dsp_matches(rex_str, ix=as.numeric(row))
}
# txt_vctr <- glb_txt_chr_lst[[glbFeatsText[1]]]
# print(chk_pattern_freq(rex_str <- "(?<!( b| c| C| p|\\(b|bo|co|lo|Lo|Sp|to|To))ok(?!(ay|e |e\\)|e,|e\\.|ed|el|en|es|ey|ie|in|on|ra))", ignore.case=FALSE))
# print(chk_pattern_freq(rex_str <- "ok(?!(ay|el|on|ra))", ignore.case=FALSE))
# dsp_pattern(rex_str, ignore.case=FALSE, print.all=FALSE)
# dsp_matches(rex_str, ix=8)
# substr(txt_vctr[86], 5613, 5620)
# substr(glb_allobs_df[301, "review"], 550, 650)
#stop(here"); sav_txt_lst <- glb_txt_chr_lst
for (txt_var in glbFeatsText) {
print(sprintf("Remaining Acronyms in %s:", txt_var))
txt_vctr <- glb_txt_chr_lst[[txt_var]]
print(chk_pattern_freq(rex_str <- "([[:upper:]]\\.( *)){2,}", ignore.case=FALSE))
# Check for names
print(subset(chk_pattern_freq(rex_str <- "(([[:upper:]]+)\\.( *)){1}",
ignore.case=FALSE),
.n > 1))
# dsp_pattern(rex_str="(OK\\.( *)){1}", ignore.case=FALSE)
# dsp_matches(rex_str="(OK\\.( *)){1}", ix=557)
#dsp_matches(rex_str="\\bR\\.I\\.P(\\.*)(\\B)", ix=461)
#dsp_matches(rex_str="\\bR\\.I\\.P(\\.*)", ix=461)
#print(str_sub(txt_vctr[676], 10100, 10200))
#print(str_sub(txt_vctr[74], 1, -1))
}
for (txt_var in glbFeatsText) {
re_str <- "\\b(Fort|Ft\\.|Hong|Las|Los|New|Puerto|Saint|San|St\\.)( |-)(\\w)+"
print(sprintf("Remaining #%s# terms in %s: ", re_str, txt_var))
txt_vctr <- glb_txt_chr_lst[[txt_var]]
print(orderBy(~ -.n +pattern, subset(chk_pattern_freq(re_str, ignore.case=FALSE),
grepl("( |-)[[:upper:]]", pattern))))
print(" consider cleaning if relevant to problem domain; geography name; .n > 1")
#grep("New G", txt_vctr, value=TRUE, ignore.case=FALSE)
#grep("St\\. Wins", txt_vctr, value=TRUE, ignore.case=FALSE)
}
#stop(here"); sav_txt_lst <- glb_txt_chr_lst
for (txt_var in glbFeatsText) {
re_str <- "\\b(N|S|E|W|C)( |\\.)(\\w)+"
print(sprintf("Remaining #%s# terms in %s: ", re_str, txt_var))
txt_vctr <- glb_txt_chr_lst[[txt_var]]
print(orderBy(~ -.n +pattern, subset(chk_pattern_freq(re_str, ignore.case=FALSE),
grepl(".", pattern))))
#grep("N Weaver", txt_vctr, value=TRUE, ignore.case=FALSE)
}
for (txt_var in glbFeatsText) {
re_str <- "\\b(North|South|East|West|Central)( |\\.)(\\w)+"
print(sprintf("Remaining #%s# terms in %s: ", re_str, txt_var))
txt_vctr <- glb_txt_chr_lst[[txt_var]]
if (nrow(filtered_df <- subset(chk_pattern_freq(re_str, ignore.case=FALSE),
grepl(".", pattern))) > 0)
print(orderBy(~ -.n +pattern, filtered_df))
#grep("Central (African|Bankers|Cast|Italy|Role|Spring)", txt_vctr, value=TRUE, ignore.case=FALSE)
#grep("East (Africa|Berlin|London|Poland|Rivals|Spring)", txt_vctr, value=TRUE, ignore.case=FALSE)
#grep("North (American|Korean|West)", txt_vctr, value=TRUE, ignore.case=FALSE)
#grep("South (Pacific|Street)", txt_vctr, value=TRUE, ignore.case=FALSE)
#grep("St\\. Martins", txt_vctr, value=TRUE, ignore.case=FALSE)
}
find_cmpnd_wrds <- function(txt_vctr) {
# Enhancements:
# - arg should be txt_corpus instead of txt_vctr
txt_corpus <- Corpus(VectorSource(txt_vctr))
txt_corpus <- tm_map(txt_corpus, content_transformer(tolower), lazy = TRUE)
txt_corpus <- tm_map(txt_corpus, PlainTextDocument, lazy = TRUE)
txt_corpus <- tm_map(txt_corpus, removePunctuation,
preserve_intra_word_dashes = TRUE, lazy = FALSE)
# Defaulting to Tf since TfIdf with normalize = TRUE throws a warning for empty docs
terms_mtrx <- as.matrix(TermDocumentMatrix(txt_corpus,
control = list(weighting = weightTf)))
terms_df <- orderBy(~ -Tf, data.frame(term = dimnames(terms_mtrx)$Terms,
Tf = rowSums(terms_mtrx)))
cmpnd_df <- subset(terms_df, grepl("-", term))
if (nrow(cmpnd_df) == 0) {
print(" No compounded terms found")
return(FALSE)
}
txt_compound_filename <- paste0(glb_txt_munge_filenames_pfx, "compound.csv")
if (!file.exists(txt_compound_filename))
stop(txt_compound_filename, " not found!")
filter_df <- read.csv(txt_compound_filename, comment.char="#", strip.white=TRUE)
cmpnd_df$filter <- FALSE
for (row_ix in 1:nrow(filter_df))
cmpnd_df[!cmpnd_df$filter, "filter"] <-
grepl(filter_df[row_ix, "rex_str"],
cmpnd_df[!cmpnd_df$filter, "term"], ignore.case=TRUE)
cmpnd_df <- subset(cmpnd_df, !filter)
# Bug in tm_map(txt_corpus, removePunctuation, preserve_intra_word_dashes=TRUE) ???
# "net-a-porter" gets converted to "net-aporter"
#grep("net-a-porter", txt_vctr, ignore.case=TRUE, value=TRUE)
#grep("maser-laser", txt_vctr, ignore.case=TRUE, value=TRUE)
#txt_corpus[[which(grepl("net-a-porter", txt_vctr, ignore.case=TRUE))]]
#grep("\\b(across|longer)-(\\w)", cmpnd_df$term, ignore.case=TRUE, value=TRUE)
#grep("(\\w)-(affected|term)\\b", cmpnd_df$term, ignore.case=TRUE, value=TRUE)
print(sprintf("nrow(cmpnd_df): %d", nrow(cmpnd_df)))
myprint_df(cmpnd_df)
}
# This should be run after glb_txt_corpus_lst is created with tolower
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "process.text_reporting_compound_terms"), major.inc=FALSE)
# for (txt_var in glbFeatsText) {
# print(sprintf("Remaining compound terms in %s: ", txt_var))
# find_cmpnd_wrds(txt_vctr = glb_txt_chr_lst[[txt_var]])
# #grep("thirty-five", txt_vctr, ignore.case=TRUE, value=TRUE)
# #rex_str <- glb_txt_map_df[grepl("hirty", glb_txt_map_df$rex_str), "rex_str"]
# }
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "build.corpus"), major.inc=TRUE)
get_txt_terms <- function(terms_TDM) {
terms_mtrx <- as.matrix(as.TermDocumentMatrix(terms_TDM))
docms_mtrx <- as.matrix(as.DocumentTermMatrix(terms_TDM))
terms_df <- data.frame(term = dimnames(terms_mtrx)$Terms,
weight = rowSums(terms_mtrx),
freq = rowSums(terms_mtrx > 0))
terms_df$pos <- 1:nrow(terms_df)
terms_df$cor.y <-
cor(docms_mtrx[glb_allobs_df$.src == "Train",],
as.numeric(glb_allobs_df[glb_allobs_df$.src == "Train", glb_rsp_var]),
use = "pairwise.complete.obs")
terms_df$cor.y.abs <- abs(terms_df$cor.y)
# .rnorm.cor.y.abs <- abs(cor(glb_allobs_df[glb_allobs_df$.src == "Train", ".rnorm"],
# as.numeric(glb_allobs_df[glb_allobs_df$.src == "Train", glb_rsp_var]),
# use = "pairwise.complete.obs"))
terms_df$chisq.stat <- NA; terms_df$chisq.pval <- NA
for (ix in 1:nrow(terms_df)) {
#for (ix in 1:743) {
if (length(unique(docms_mtrx[glb_allobs_df$.src == "Train", ix])) > 1) {
chisq <- chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
glb_allobs_df[glb_allobs_df$.src == "Train", glb_rsp_var])
terms_df[ix, "chisq.stat"] <- chisq$statistic
terms_df[ix, "chisq.pval"] <- chisq$p.value
}
}
nzv_df <- nzv(docms_mtrx[glb_allobs_df$.src == "Train",], freqCut = glb_nzv_freqCut,
uniqueCut = glb_nzv_uniqueCut, saveMetrics = TRUE)
terms_df$nzv.freqRatio <- nzv_df$freqRatio
# terms_df$nzv.freqRatio.cut.fctr <- cut(terms_df$nzv.freqRatio,
# breaks = sort(c(min(terms_df$nzv.freqRatio),
# glb_nzv_freqCut,
# max(terms_df$nzv.freqRatio))))
terms_df$nzv.percentUnique <- nzv_df$percentUnique
# terms_df$nzv.percentUnique.cut.fctr <- cut(terms_df$nzv.percentUnique,
# breaks = sort(c(min(terms_df$nzv.percentUnique) - .Machine$double.neg.eps,
# glb_nzv_uniqueCut,
# max(terms_df$nzv.percentUnique))))
# terms_df$nzv.quad.fctr <- as.factor(paste0("fRatio:", terms_df$nzv.freqRatio.cut.fctr,
# "\n%Unq:", terms_df$nzv.percentUnique.cut.fctr))
terms_df$nzv <- nzv_df$nzv
for (cls in unique(glb_allobs_df[, glb_txt_cor_var])) {
if (!is.na(cls))
terms_df[, paste0("weight.", as.character(cls))] <-
colSums(t(terms_mtrx) *
as.numeric(!is.na(glb_allobs_df[, glb_txt_cor_var]) &
(glb_allobs_df[, glb_txt_cor_var] == cls))) else
terms_df[, paste0("weight.", as.character(cls))] <-
colSums(t(terms_mtrx) *
as.numeric(is.na(glb_allobs_df[, glb_txt_cor_var])))
}
# Check all calls to get_terms_DTM_terms to change returned order assumption
return(terms_df <- orderBy(~ -weight, terms_df))
}
#plt_full_df <- get_terms_DTM_terms(terms_DTM=glb_full_terms_DTM_lst[[txt_var]])
get_corpus_terms <- function(txt_corpus) {
return(terms_df <- get_txt_terms(terms_TDM =
TermDocumentMatrix(txt_corpus, control = glb_txt_terms_control)))
}
myreplacePunctuation <- function(x) {
return(gsub("[[:punct:]]+", " ", gsub("('|-)", "", x)))
}
#stop(here"); glb_to_sav()
glb_txt_corpus_lst <- list()
print(sprintf("Building glb_txt_corpus_lst..."))
glb_txt_corpus_lst <- foreach(txt_var = glbFeatsText, .verbose = FALSE) %dopar% {
#glb_txt_corpus_lst <- foreach(txt_var = glbFeatsText, .verbose = TRUE) %do% {
#for (txt_var in glbFeatsText) {
txt_corpus <- Corpus(VectorSource(glb_txt_chr_lst[[txt_var]]))
txt_corpus <- tm_map(txt_corpus, PlainTextDocument, lazy = TRUE)
txt_corpus <- tm_map(txt_corpus, content_transformer(tolower), lazy = TRUE) #nuppr
# removePunctuation does not replace with whitespace. Use a custom transformer ???
#txt_corpus <- tm_map(txt_corpus, removePunctuation, lazy = TRUE) #npnct<chr_ix>
txt_corpus <- tm_map(txt_corpus, content_transformer(myreplacePunctuation)
, lazy = TRUE) #npnct<chr_ix>
# txt-corpus <- tm_map(txt_corpus, content_transformer(function(x, pattern) gsub(pattern, "", x))
if (!is.null(glb_txt_stop_words[[txt_var]]))
txt_corpus <- tm_map(txt_corpus, removeWords, glb_txt_stop_words[[txt_var]],
lazy = FALSE)#, lazy=TRUE) #nstopwrds
# foreach result is based on .Last.Eval
txt_corpus <- txt_corpus
# glb_txt_corpus_lst[[txt_var]] <- txt_corpus
}
names(glb_txt_corpus_lst) <- glbFeatsText
mycombineSynonyms <- content_transformer(function(x, syn=NULL) {
Reduce(function(a,b) {
gsub(paste0("\\b(", paste(b$syns, collapse = "|"),")\\b"), b$word, a)}, syn, x)
})
#stop(here"); glb_to_sav(); sav_txt_corpus <- glb_txt_corpus_lst[[txt_var]]; all.equal(sav_txt_corpus, glb_txt_corpus_lst[[txt_var]]); glb_txt_corpus_lst[[txt_var]] <- sav_txt_corpus
glb_post_stop_words_terms_df_lst <- list();
glb_post_stop_words_terms_mtrx_lst <- list();
glb_post_stem_words_terms_df_lst <- list();
glb_post_stem_words_terms_mtrx_lst <- list();
for (txt_var in glbFeatsText) {
print(sprintf(" Top_n post-stop term weights for %s:", txt_var))
# This impacts stemming probably due to lazy parameter
print(myprint_df(full_terms_df <-
get_corpus_terms(txt_corpus=glb_txt_corpus_lst[[txt_var]]),
glbFeatsTextTermsMax[[txt_var]]))
glb_post_stop_words_terms_df_lst[[txt_var]] <- full_terms_df
terms_stop_mtrx <- as.matrix(DocumentTermMatrix(glb_txt_corpus_lst[[txt_var]],
control=glb_txt_terms_control))
rownames(terms_stop_mtrx) <- rownames(glb_allobs_df) # print undreadable otherwise
glb_post_stop_words_terms_mtrx_lst[[txt_var]] <- terms_stop_mtrx
tmp_allobs_df <- glb_allobs_df[, c(glb_id_var, glb_rsp_var)]
tmp_allobs_df$terms.post.stop.n <- rowSums(terms_stop_mtrx > 0)
tmp_allobs_df$terms.post.stop.n.log <- log(1 + tmp_allobs_df$terms.post.stop.n)
tmp_allobs_df$weight.post.stop.sum <- rowSums(terms_stop_mtrx)
print(sprintf(" Top_n stem term weights for %s:", txt_var))
glb_txt_corpus_lst[[txt_var]] <- tm_map(glb_txt_corpus_lst[[txt_var]], stemDocument,
"english", lazy=FALSE)
if (!is.null(glb_txt_synonyms[[txt_var]])) {
syn_lst <- myrmNullObj(glb_txt_synonyms[[txt_var]])
glb_txt_corpus_lst[[txt_var]] <- tm_map(glb_txt_corpus_lst[[txt_var]],
mycombineSynonyms,
syn_lst, lazy=FALSE)
}
print(myprint_df(full_terms_df <- get_corpus_terms(glb_txt_corpus_lst[[txt_var]]),
glbFeatsTextTermsMax[[txt_var]]))
glb_post_stem_words_terms_df_lst[[txt_var]] <- full_terms_df
terms_stem_mtrx <- as.matrix(DocumentTermMatrix(glb_txt_corpus_lst[[txt_var]],
control=glb_txt_terms_control))
rownames(terms_stem_mtrx) <- rownames(glb_allobs_df) # print undreadable otherwise
glb_post_stem_words_terms_mtrx_lst[[txt_var]] <- terms_stem_mtrx
tmp_allobs_df$terms.post.stem.n <- rowSums(terms_stem_mtrx > 0)
tmp_allobs_df$terms.post.stem.n.log <- log(1 + tmp_allobs_df$terms.post.stem.n)
tmp_allobs_df$weight.post.stem.sum <- rowSums(terms_stem_mtrx)
tmp_allobs_df$terms.n.stem.stop.Ratio <-
1.0 * tmp_allobs_df$terms.post.stem.n / tmp_allobs_df$terms.post.stop.n
tmp_allobs_df[(is.nan(tmp_allobs_df$terms.n.stem.stop.Ratio) |
is.infinite(tmp_allobs_df$terms.n.stem.stop.Ratio)),
"terms.n.stem.stop.Ratio"] <- 1.0
if ((n.errors <- sum(tmp_allobs_df$terms.n.stem.stop.Ratio > 1)) > 0)
stop(n.errors, " obs in tmp_allobs_df have terms.n.stem.stop.Ratio > 1",
" happening due to terms filtered by glb_txt_terms_control$bounds$global[1] but stemmable to other terms")
#print(head(subset(tmp_allobs_df, terms.n.stem.stop.Ratio > 1)))
#glb_allobs_df[(row_ix <- which(glb_allobs_df$UniqueID == 10465)), ]
#terms_stop_mtrx[row_ix, terms_stop_mtrx[row_ix, ] > 0]
#setdiff(names(terms_stem_mtrx[row_ix, terms_stem_mtrx[row_ix, ] > 0]), names(terms_stop_mtrx[row_ix, terms_stop_mtrx[row_ix, ] > 0]))
#mydsp_obs(list(descr.my.contains="updat"))
tmp_allobs_df$weight.sum.stem.stop.Ratio <-
1.0 * tmp_allobs_df$weight.post.stem.sum / tmp_allobs_df$weight.post.stop.sum
tmp_allobs_df[is.nan(tmp_allobs_df$weight.sum.stem.stop.Ratio) |
is.infinite(tmp_allobs_df$weight.sum.stem.stop.Ratio),
"weight.sum.stem.stop.Ratio"] <- 1.0
tmp_trnobs_df <- tmp_allobs_df[!is.na(tmp_allobs_df[, glb_rsp_var]), ]
print(cor(as.matrix(tmp_trnobs_df[, -c(1, 2)]),
as.numeric(tmp_trnobs_df[, glb_rsp_var])))
txt_var_pfx <- toupper(substr(txt_var, 1, 1))
tmp_allobs_df <- tmp_allobs_df[, -c(1, 2)]
names(tmp_allobs_df) <- paste(paste0(txt_var_pfx, "."), names(tmp_allobs_df), sep = "")
glb_allobs_df <- cbind(glb_allobs_df, tmp_allobs_df)
glbFeatsExclude <- c(glbFeatsExclude,
paste(paste0(txt_var_pfx, ".terms.post."), c("stop.n", "stem.n"), sep = ""))
}
require(wordcloud)
for (txt_var in glbFeatsText) {
print(sprintf(" Wordcloud post-stem term weights for %s:", txt_var))
m <- glb_post_stem_words_terms_mtrx_lst[[txt_var]]
# calculate the frequency of words
v <- sort(colSums(m), decreasing = TRUE)
myNames <- names(v)
d <- data.frame(word = myNames, freq = v)
wordcloud(d$word, d$freq, min.freq = glb_txt_terms_control$bounds$global[1])
}
for (txt_var in glbFeatsText) {
.rnorm.cor.y.abs <- abs(cor(glb_allobs_df[glb_allobs_df$.src == "Train", ".rnorm"],
as.numeric(glb_allobs_df[glb_allobs_df$.src == "Train", glb_rsp_var]),
use = "pairwise.complete.obs"))
plt_df <- subset(glb_post_stem_words_terms_df_lst[[txt_var]], !is.na(cor.y))
plt_df$nzv.freqRatio.cut.fctr <- cut(plt_df$nzv.freqRatio,
breaks = sort(c(min(plt_df$nzv.freqRatio),
glb_nzv_freqCut,
max(plt_df$nzv.freqRatio))))
plt_df$nzv.percentUnique.cut.fctr <- cut(plt_df$nzv.percentUnique,
breaks = sort(c(min(plt_df$nzv.percentUnique) - .Machine$double.neg.eps,
glb_nzv_uniqueCut,
max(plt_df$nzv.percentUnique))))
plt_df$nzv.quad.fctr <- as.factor(paste0("fRatio:", plt_df$nzv.freqRatio.cut.fctr,
"\n%Unq:", plt_df$nzv.percentUnique.cut.fctr))
labelCnd <- !plt_df$nzv |
(!is.na(plt_df$chisq.pval) & (plt_df$chisq.pval < 0.05)) &
(!is.na(plt_df$cor.y.abs) & (plt_df$cor.y.abs > .rnorm.cor.y.abs))
plt_df$label <- NA; plt_df[labelCnd, "label"] <- plt_df[labelCnd, "term"]
print(ggplot(plt_df, aes(x = cor.y, y = chisq.stat)) +
geom_point(aes(color = nzv.quad.fctr, size = weight)) +
geom_text(aes(label = label), color = "gray50") +
# geom_vline(xintercept = 0) +
geom_vline(xintercept = c(-1, +1) * .rnorm.cor.y.abs, color = "gray",
linetype = "dashed") +
ggtitle(txt_var))
}
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "extract.DTM"), major.inc=TRUE)
#stop(here")
glb_full_DTM_lst <- list(); glb_sprs_DTM_lst <- list();
for (txt_var in glbFeatsText) {
print(sprintf("Extracting term weights for %s...", txt_var))
txt_corpus <- glb_txt_corpus_lst[[txt_var]]
full_DTM <- DocumentTermMatrix(txt_corpus,
control=glb_txt_terms_control)
sprs_DTM <- removeSparseTerms(full_DTM,
glb_sprs_thresholds[txt_var])
glb_full_DTM_lst[[txt_var]] <- full_DTM
glb_sprs_DTM_lst[[txt_var]] <- sprs_DTM
}
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "report.DTM"), major.inc=TRUE)
require(reshape2)
for (txt_var in glbFeatsText) {
print(sprintf("Reporting term weights for %s...", txt_var))
full_DTM <- glb_full_DTM_lst[[txt_var]]
sprs_DTM <- glb_sprs_DTM_lst[[txt_var]]
print(" Full TermMatrix:"); print(full_DTM)
full_terms_df <- get_txt_terms(full_DTM)
# full_terms_df <- full_terms_df[, c(2, 1, 3, 4)]
# col_names <- names(full_terms_df)
# col_names[2:length(col_names)] <-
# paste(col_names[2:length(col_names)], ".full", sep="")
# names(full_terms_df) <- col_names
print(" Sparse TermMatrix:"); print(sprs_DTM)
sprs_terms_df <- get_txt_terms(sprs_DTM)
# sprs_terms_df <- sprs_terms_df[, c(2, 1, 3, 4)]
# col_names <- names(sprs_terms_df)
# col_names[2:length(col_names)] <-
# paste(col_names[2:length(col_names)], ".sprs", sep="")
# names(sprs_terms_df) <- col_names
#intersect(names(full_terms_df), names(sprs_terms_df))
terms_df <- merge(full_terms_df, sprs_terms_df, by = c("term", "weight", "freq",
grep("weight\\.", names(full_terms_df), value = TRUE)),
all.x = TRUE, suffixes = c(".full", ".sprs"))
terms_df$in.sprs <- !is.na(terms_df$pos.sprs)
plt_terms_df <- subset(terms_df,
weight >= min(terms_df$weight[!is.na(terms_df$pos.sprs)], na.rm=TRUE))
plt_terms_df$label <- ""
plt_terms_df[is.na(plt_terms_df$pos.sprs), "label"] <-
plt_terms_df[is.na(plt_terms_df$pos.sprs), "term"]
# glb_important_terms[[txt_var]] <- union(glb_important_terms[[txt_var]],
# plt_terms_df[is.na(plt_terms_df$TfIdf.sprs), "term"])
print(myplot_scatter(plt_terms_df, "freq", "weight",
colorcol_name="in.sprs") +
geom_text(aes(label=label), color="Black", size=3.5))
melt_terms_df <- orderBy(~ -value,
melt(terms_df, id.vars="term", measure.vars = c("weight", "freq")))
print(ggplot(melt_terms_df, aes(value, color=variable)) + stat_ecdf() +
geom_hline(yintercept=glb_sprs_thresholds[txt_var],
linetype = "dotted"))
melt_terms_df <- orderBy(~ -value,
melt(subset(terms_df, in.sprs), id.vars="term",
measure.vars=grep("weight.", names(terms_df), value=TRUE)))
print(myplot_hbar(melt_terms_df, "term", "value", colorcol_name="variable"))
melt_terms_df <- orderBy(~ -value,
melt(subset(terms_df, !in.sprs), id.vars="term",
measure.vars=grep("weight.", names(terms_df), value=TRUE)))
print(myplot_hbar(head(melt_terms_df, glbFeatsTextTermsMax[[txt_var]]), "term", "value",
colorcol_name="variable"))
}
# sav_full_DTM_lst <- glb_full_DTM_lst
# print(identical(sav_glb_txt_corpus_lst, glb_txt_corpus_lst))
# print(all.equal(length(sav_glb_txt_corpus_lst), length(glb_txt_corpus_lst)))
# print(all.equal(names(sav_glb_txt_corpus_lst), names(glb_txt_corpus_lst)))
# print(all.equal(sav_glb_txt_corpus_lst[["Headline"]], glb_txt_corpus_lst[["Headline"]]))
# print(identical(sav_full_DTM_lst, glb_full_DTM_lst))
rm(full_terms_mtrx)
# Create txt features
if ((length(glbFeatsText) > 1) &&
(length(unique(pfxs <- sapply(glbFeatsText,
function(txt) toupper(substr(txt, 1, 1))))) < length(glbFeatsText)))
stop("Prefixes for corpus freq terms not unique: ", pfxs)
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "bind.DTM"),
major.inc=TRUE)
#stop(here"); glb_to_sav(); all.equal(sav_allobs_df, glb_allobs_df); glb_allobs_df <- sav_allobs_df
require(tidyr)
for (txt_var in glbFeatsText) {
print(sprintf("Binding DTM for %s...", txt_var))
txt_var_pfx <- toupper(substr(txt_var, 1, 1))
txt_full_X_df <- as.data.frame(as.matrix(glb_full_DTM_lst[[txt_var]]))
terms_full_df <- get_txt_terms(glb_full_DTM_lst[[txt_var]])
# make.names adds a period to R keywords e.g. "in", "function"
colnames(txt_full_X_df) <- paste(txt_var_pfx, ".T.",
make.names(colnames(txt_full_X_df)), sep="")
rownames(txt_full_X_df) <- rownames(glb_allobs_df) # warning otherwise
# plt_full_df <- terms_full_df
# names(plt_full_df)[grepl("weight$", names(plt_full_df))] <- "weight.all"
# # gather(plt_full_df[1:5, ], domain, TfIdf, -matches("!(TfIdf)"))
# # gather(plt_full_df[1:5, grepl("TfIdf", names(plt_full_df))], domain, TfIdf)
# # gather(plt_full_df[1:5, ], domain, TfIdf,
# # -names(plt_full_df)[!grepl("TfIdf", names(plt_full_df))])
# plt_full_df <- gather(plt_full_df, domain, weight,
# -c(term, freq, pos, cor.y, cor.y.abs))
# plt_full_df$label <- NA
# top_val_terms <- orderBy(~-weight, terms_full_df)$term[1:glbFeatsTextTermsMax[[txt_var]]]
# plt_full_df[plt_full_df$term %in% top_val_terms, "label"] <-
# plt_full_df[plt_full_df$term %in% top_val_terms, "term"]
# top_cor_terms <- orderBy(~-cor.y.abs,
# terms_full_df)$term[1:glbFeatsTextTermsMax[[txt_var]]]
# plt_full_df[plt_full_df$term %in% top_cor_terms, "label"] <-
# plt_full_df[plt_full_df$term %in% top_cor_terms, "term"]
# #plt_full_df$type <- "none"
# plt_full_df[plt_full_df$term %in% top_val_terms, "type"] <- "top.weight"
# plt_full_df[plt_full_df$term %in% top_cor_terms, "type"] <- "top.cor"
# plt_full_df[plt_full_df$term %in% intersect(top_val_terms, top_cor_terms), "type"] <-
# "top.both"
# cor.y.rnorm <- cor(glb_allobs_df$.rnorm, as.numeric(glb_allobs_df[, glb_rsp_var]),
# use = "pairwise.complete.obs")
# print(ggplot(plt_full_df, aes(x=weight, y=cor.y)) + facet_wrap(~ domain) +
# geom_point(aes(size=freq), color="grey") +
# geom_jitter() +
# geom_text(aes(label=label, color=type), size=3.5) +
# #geom_hline(yintercept=cor.y.rnorm, color="red") +
# geom_hline(yintercept=c(cor.y.rnorm, -cor.y.rnorm), color="red"))
#stop(here"); glb_to_sav()
if (glbFeatsTextFilter == "sparse") {
txt_X_df <- as.data.frame(as.matrix(glb_sprs_DTM_lst[[txt_var]]))
select_terms <- make.names(colnames(txt_X_df))
# colnames(txt_X_df) <- paste(txt_var_pfx, ".T.",
# make.names(colnames(txt_X_df)), sep="")
# rownames(txt_X_df) <- rownames(glb_allobs_df) # warning otherwise
} else if (glbFeatsTextFilter == "top.val") {
select_terms <- orderBy(~-weight,
terms_full_df)$term[1:glbFeatsTextTermsMax[[txt_var]]]
# txt_X_df <- txt_full_X_df[, subset(terms_full_df, term %in% select_terms)$pos,
# FALSE]
} else if (glbFeatsTextFilter == "top.cor") {
select_terms <- orderBy(~-cor.y.abs,
terms_full_df)$term[1:glbFeatsTextTermsMax[[txt_var]]]
# txt_X_df <- txt_full_X_df[, subset(terms_full_df, term %in% select_terms)$pos,
# FALSE]
} else if (glbFeatsTextFilter == "top.chisq") {
select_terms <- orderBy(~-chisq.stat,
subset(terms_full_df, chisq.pval < 0.05)
)$term[1:glbFeatsTextTermsMax[[txt_var]]]
} else if (glbFeatsTextFilter == "union.top.val.cor") {
select_terms <- union(
orderBy(~-weight , terms_full_df)$term[1:glbFeatsTextTermsMax[[txt_var]]],
orderBy(~-cor.y.abs, terms_full_df)$term[1:glbFeatsTextTermsMax[[txt_var]]])
} else stop(
"glbFeatsTextFilter should be one of c('sparse', 'top.val', 'top.cor', 'union.top.val.cor', 'top.chisq') vs. '",
glbFeatsTextFilter, "'")
assoc_terms_lst <- findAssocs(glb_full_DTM_lst[[txt_var]], select_terms,
glbFeatsTextAssocCor[[txt_var]])
assoc_terms <- c(NULL)
for (term in names(assoc_terms_lst))
if (length(assoc_terms_lst[[term]]) > 0)
assoc_terms <- union(assoc_terms, names(assoc_terms_lst[[term]]))
#stop(here"); glb_to_sav()
txt_X_df <- txt_full_X_df[,
subset(terms_full_df, term %in% c(select_terms, assoc_terms))$pos,
FALSE]
glb_allobs_df <- cbind(glb_allobs_df, txt_X_df) # TfIdf is normalized
#glb_allobs_df <- cbind(glb_allobs_df, log_X_df) # if using non-normalized metrics
}
#identical(chk_entity_df, glb_allobs_df)
#chk_entity_df <- glb_allobs_df
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df,
paste0("extract.features_", "bind.DXM"),
major.inc=TRUE)
#stop(here"); sav_allobs_df <- glb_allobs_df; glb_allobs_df <- sav_allobs_df
glb_punct_vctr <- c("!", "\"", "#", "\\$", "%", "&", "'",
"\\(|\\)",# "\\(", "\\)",
"\\*", "\\+", ",", "-", "\\.", "/", ":", ";",
"<|>", # "<",
"=",
# ">",
"\\?", "@", "\\[", "\\\\", "\\]", "\\^", "_", "`",
"\\{", "\\|", "\\}", "~")
txt_X_df <- glb_allobs_df[, c(glb_id_var, ".rnorm"), FALSE]
txt_X_df <- foreach(txt_var=glbFeatsText, .combine=cbind) %dopar% {
#for (txt_var in glbFeatsText) {
print(sprintf("Binding DXM for %s...", txt_var))
txt_var_pfx <- toupper(substr(txt_var, 1, 1))
txt_full_DTM_mtrx <- as.matrix(glb_full_DTM_lst[[txt_var]])
rownames(txt_full_DTM_mtrx) <- rownames(glb_allobs_df) # print undreadable otherwise
#print(txt_full_DTM_mtrx[txt_full_DTM_mtrx[, "ebola"] != 0, "ebola"])
# Create <txt_var>.T.<term> for glb_important_terms
for (term in glb_important_terms[[txt_var]])
txt_X_df[, paste0(txt_var_pfx, ".T.", make.names(term))] <-
txt_full_DTM_mtrx[, term]
# Create <txt_var>.wrds.n.log & .wrds.unq.n.log
txt_X_df[, paste0(txt_var_pfx, ".wrds.n.log")] <-
log(1 + mycount_pattern_occ("\\w+", glb_txt_chr_lst[[txt_var]]))
txt_X_df[, paste0(txt_var_pfx, ".wrds.unq.n.log")] <-
log(1 + rowSums(txt_full_DTM_mtrx != 0))
txt_X_df[, paste0(txt_var_pfx, ".weight.sum")] <-
rowSums(txt_full_DTM_mtrx)
txt_X_df[, paste0(txt_var_pfx, ".ratio.weight.sum.wrds.n")] <-
txt_X_df[, paste0(txt_var_pfx, ".weight.sum")] /
(exp(txt_X_df[, paste0(txt_var_pfx, ".wrds.n.log")]) - 1)
txt_X_df[is.nan(txt_X_df[, paste0(txt_var_pfx, ".ratio.weight.sum.wrds.n")]),
paste0(txt_var_pfx, ".ratio.weight.sum.wrds.n")] <- 0
# Create <txt_var>.chrs.n.log
txt_X_df[, paste0(txt_var_pfx, ".chrs.n.log")] <-
log(1 + mycount_pattern_occ(".", glb_allobs_df[, txt_var]))
txt_X_df[, paste0(txt_var_pfx, ".chrs.uppr.n.log")] <-
log(1 + mycount_pattern_occ("[[:upper:]]", glb_allobs_df[, txt_var]))
txt_X_df[, paste0(txt_var_pfx, ".dgts.n.log")] <-
log(1 + mycount_pattern_occ("[[:digit:]]", glb_allobs_df[, txt_var]))
# Create <txt_var>.npnct?.log
# would this be faster if it's iterated over each row instead of
# each created column ???
for (punct_ix in 1:length(glb_punct_vctr)) {
# smp0 <- " "
# smp1 <- "! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~"
# smp2 <- paste(smp1, smp1, sep=" ")
# print(sprintf("Testing %s pattern:", glb_punct_vctr[punct_ix]))
# results <- mycount_pattern_occ(glb_punct_vctr[punct_ix], c(smp0, smp1, smp2))
# names(results) <- NULL; print(results)
txt_X_df[,
paste0(txt_var_pfx, ".chrs.pnct", sprintf("%02d", punct_ix), ".n.log")] <-
log(1 + mycount_pattern_occ(glb_punct_vctr[punct_ix],
glb_allobs_df[, txt_var]))
}
# print(head(glb_allobs_df[glb_allobs_df[, "A.npnct23.log"] > 0,
# c("UniqueID", "Popular", "Abstract", "A.npnct23.log")]))
# Create <txt_var>.wrds.stop.n.log & <txt_var>ratio.wrds.stop.n.wrds.n
if (!is.null(glb_txt_stop_words[[txt_var]])) {
stop_words_rex_str <- paste0("\\b(",
paste0(glb_txt_stop_words[[txt_var]], collapse="|"),
")\\b")
txt_X_df[, paste0(txt_var_pfx, ".wrds.stop.n", ".log")] <-
log(1 + mycount_pattern_occ(stop_words_rex_str, glb_txt_chr_lst[[txt_var]]))
txt_X_df[, paste0(txt_var_pfx, ".ratio.wrds.stop.n.wrds.n")] <-
exp(txt_X_df[, paste0(txt_var_pfx, ".wrds.stop.n", ".log")] -
txt_X_df[, paste0(txt_var_pfx, ".wrds.n", ".log")])
}
# Create <txt_var>.P.http
txt_X_df[, paste(txt_var_pfx, ".P.http", sep="")] <-
as.integer(0 + mycount_pattern_occ("http", glb_allobs_df[, txt_var]))
# Create <txt_var>.P.mini & air
txt_X_df[, paste(txt_var_pfx, ".P.mini", sep="")] <-
as.integer(0 + mycount_pattern_occ("mini(?!m)", glb_allobs_df[, txt_var],
perl=TRUE))
txt_X_df[, paste(txt_var_pfx, ".P.air", sep="")] <-
as.integer(0 + mycount_pattern_occ("(?<![fhp])air", glb_allobs_df[, txt_var],
perl=TRUE))
txt_X_df[, paste(txt_var_pfx, ".P.black", sep="")] <-
as.integer(0 + mycount_pattern_occ("black", glb_allobs_df[, txt_var],
perl=TRUE))
txt_X_df[, paste(txt_var_pfx, ".P.white", sep="")] <-
as.integer(0 + mycount_pattern_occ("white", glb_allobs_df[, txt_var],
perl=TRUE))
txt_X_df[, paste(txt_var_pfx, ".P.gold", sep="")] <-
as.integer(0 + mycount_pattern_occ("gold", glb_allobs_df[, txt_var],
perl=TRUE))
txt_X_df[, paste(txt_var_pfx, ".P.spacegray", sep="")] <-
as.integer(0 + mycount_pattern_occ("spacegray", glb_allobs_df[, txt_var],
perl=TRUE))
txt_X_df <- subset(txt_X_df, select=-.rnorm)
txt_X_df <- txt_X_df[, -grep(glb_id_var, names(txt_X_df), fixed=TRUE), FALSE]
#glb_allobs_df <- cbind(glb_allobs_df, txt_X_df)
}
glb_allobs_df <- cbind(glb_allobs_df, txt_X_df)
#myplot_box(glb_allobs_df, "A.sum.TfIdf", glb_rsp_var)
# if (sum(is.na(glb_allobs_df$D.P.http)) > 0)
# stop("Why is this happening ?")
# Generate summaries
# print(summary(glb_allobs_df))
# print(sapply(names(glb_allobs_df), function(col) sum(is.na(glb_allobs_df[, col]))))
# print(summary(glb_trnobs_df))
# print(sapply(names(glb_trnobs_df), function(col) sum(is.na(glb_trnobs_df[, col]))))
# print(summary(glb_newobs_df))
# print(sapply(names(glb_newobs_df), function(col) sum(is.na(glb_newobs_df[, col]))))
glbFeatsExclude <- union(glbFeatsExclude,
glbFeatsText)
rm(log_X_df, txt_X_df)
}
## Loading required package: stringr
## label step_major step_minor label_minor
## 2 extract.features_factorize.str.vars 2 0 0
## 3 extract.features_process.text 3 0 0
## bgn end elapsed
## 2 32.570 32.654 0.084
## 3 32.655 NA NA
## [1] "Building glb_txt_chr_lst..."
## [1] "running gsub for 10 (of 179): #\\bCentral African Republic\\b#..."
## [1] "running gsub for 20 (of 179): #\\bAlejandro G\\. Iñárritu#..."
## [1] "running gsub for 30 (of 179): #\\bC\\.A\\.A\\.#..."
## [1] "running gsub for 40 (of 179): #\\bCV\\.#..."
## [1] "running gsub for 50 (of 179): #\\bE\\.P\\.A\\.#..."
## [1] "running gsub for 60 (of 179): #\\bG\\.I\\. Joe#..."
## [1] "running gsub for 70 (of 179): #\\bISIS\\.#..."
## [1] "running gsub for 80 (of 179): #\\bJ\\.K\\. Simmons#..."
## [1] "running gsub for 90 (of 179): #\\bM\\. Henri Pol#..."
## [1] "running gsub for 100 (of 179): #\\bN\\.Y\\.S\\.E\\.#..."
## [1] "running gsub for 110 (of 179): #\\bR\\.B\\.S\\.#..."
## [1] "running gsub for 120 (of 179): #\\bSteven A\\. Cohen#..."
## [1] "running gsub for 130 (of 179): #\\bV\\.A\\.#..."
## [1] "running gsub for 140 (of 179): #\\bWall Street#..."
## [1] "running gsub for 150 (of 179): #\\bSaint( |-)((Laurent|Lucia)\\b)+#..."
## [1] "running gsub for 160 (of 179): #\\bSouth( |\\\\.)(America|American|Africa|African|Carolina|Dakota|Korea|Korean|Sudan)\\b#..."
## [1] "running gsub for 170 (of 179): #(\\w)-a-year#..."
## [1] "Remaining OK in descr.my:"
## pattern .n
## 1 OK 6
## [[1]]
## [1] NA
## attr(,"match.length")
## [1] NA
##
## [1] NA
## [[1]]
## [1] NA
## attr(,"match.length")
## [1] NA
##
## [1] NA
## [[1]]
## [1] NA
## attr(,"match.length")
## [1] NA
##
## [1] NA
## [[1]]
## [1] NA
## attr(,"match.length")
## [1] NA
##
## [1] NA
## [[1]]
## [1] NA
## attr(,"match.length")
## [1] NA
##
## [1] NA
## [[1]]
## [1] NA
## attr(,"match.length")
## [1] NA
##
## [1] NA
## [1] pattern .n
## <0 rows> (or 0-length row.names)
## [1] pattern .n
## <0 rows> (or 0-length row.names)
## [1] "Remaining Acronyms in descr.my:"
## [1] pattern .n
## <0 rows> (or 0-length row.names)
## pattern .n
## 1 CONDITION. 6
## 2 ONLY. 5
## 3 GB. 4
## 4 BOX. 2
## 5 CORNER. 2
## 6 ESN. 2
## 7 GOOD. 2
## 8 ICLOUD. 2
## 9 IMEI. 2
## 10 IPADS. 2
## 11 LOCKED. 2
## 12 LOCKS. 2
## 13 ON. 2
## 14 SCRATCHES. 2
## 15 TEARS. 2
## 16 USE. 2
## 17 WIFIONLY. 2
## [1] "Remaining #\\b(Fort|Ft\\.|Hong|Las|Los|New|Puerto|Saint|San|St\\.)( |-)(\\w)+# terms in descr.my: "
## pattern .n
## 1 New Open 3
## 4 New Digitizer 1
## 5 New Opened 1
## 6 New Screen 1
## [1] " consider cleaning if relevant to problem domain; geography name; .n > 1"
## [1] "Remaining #\\b(N|S|E|W|C)( |\\.)(\\w)+# terms in descr.my: "
## pattern .n
## 1 C Stock 3
## 2 W blue 1
## [1] "Remaining #\\b(North|South|East|West|Central)( |\\.)(\\w)+# terms in descr.my: "
## label step_major
## 3 extract.features_process.text 3
## 4 extract.features_process.text_reporting_compound_terms 3
## step_minor label_minor bgn end elapsed
## 3 0 0 32.655 34.168 1.514
## 4 1 1 34.169 NA NA
## label step_major
## 4 extract.features_process.text_reporting_compound_terms 3
## 5 extract.features_build.corpus 4
## step_minor label_minor bgn end elapsed
## 4 1 1 34.169 34.174 0.005
## 5 0 0 34.174 NA NA
## [1] "Building glb_txt_corpus_lst..."
## [1] " Top_n post-stop term weights for descr.my:"
## Warning in weighting(x): empty document(s): character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) charact
## Warning in cor(docms_mtrx[glb_allobs_df$.src == "Train", ],
## as.numeric(glb_allobs_df[glb_allobs_df$.src == : the standard deviation is
## zero
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## [1] "Rows: 347; Cols: 14"
## term weight freq pos cor.y cor.y.abs chisq.stat
## condition condition 160.57765 486 69 -0.034976682 0.034976682 69.49175
## likenew likenew 123.78010 70 175 -0.043168766 0.043168766 22.07653
## in in 102.43546 432 146 -0.071653919 0.071653919 40.30764
## used used 96.66889 229 327 0.008747051 0.008747051 31.92471
## and and 92.37461 331 21 0.006010357 0.006010357 38.45444
## is is 87.72451 335 162 -0.042931491 0.042931491 26.34374
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## condition 2.609830e-06 36.97561 1.351351 TRUE 61.61577
## likenew 1.817939e-01 257.71429 0.972973 TRUE 54.11495
## in 1.981535e-02 33.52174 1.351351 TRUE 46.12932
## used 1.017193e-01 54.54839 1.297297 TRUE 33.84672
## and 7.095553e-02 55.24138 1.513514 TRUE 35.73653
## is 5.541564e-01 54.06667 1.567568 TRUE 35.26992
## weight.Y weight.NA
## condition 42.65757 56.30431
## likenew 19.52427 50.14088
## in 26.82731 29.47884
## used 31.76561 31.05656
## and 31.78712 24.85096
## is 23.45595 28.99864
## term weight freq pos cor.y cor.y.abs chisq.stat
## case case 33.533127 76 54 -0.009225083 0.009225083 16.106811
## protector protector 10.206604 18 253 0.006965022 0.006965022 8.315515
## contact contact 10.006409 15 71 0.035032399 0.035032399 9.951124
## 64gb 64gb 8.260734 14 10 -0.030822325 0.030822325 8.352751
## otterbox otterbox 7.546463 10 221 -0.013289954 0.013289954 4.917015
## look look 1.267528 2 182 -0.030370111 0.030370111 1.720453
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## case 0.5850931 198.4444 1.0270270 TRUE 16.019773
## protector 0.5026891 611.6667 0.5405405 TRUE 4.336370
## contact 0.0412591 262.5714 0.2702703 TRUE 2.440087
## 64gb 0.3025184 613.6667 0.4324324 TRUE 4.043603
## otterbox 0.5544999 921.5000 0.3783784 TRUE 3.401559
## look 0.4230663 1848.0000 0.1621622 TRUE 1.267528
## weight.Y weight.NA
## case 12.327119 5.186234
## protector 4.386232 1.484003
## contact 5.843907 1.722415
## 64gb 1.260555 2.956575
## otterbox 1.826941 2.317964
## look 0.000000 0.000000
## term weight freq pos cor.y cor.y.abs
## having having 0.7106680 1 140 NA NA
## shipped shipped 0.7106680 1 284 0.02508765 0.02508765
## thats thats 0.6688640 1 310 -0.02155773 0.02155773
## gentle gentle 0.6317049 1 130 -0.02155773 0.02155773
## opening opening 0.6317049 1 216 0.02508765 0.02508765
## previously previously 0.5984572 1 246 NA NA
## chisq.stat chisq.pval nzv.freqRatio nzv.percentUnique nzv
## having NA NA 0 0.05405405 TRUE
## shipped 5.762908e-03 0.9394877 1849 0.10810811 TRUE
## thats 1.281078e-27 1.0000000 1849 0.10810811 TRUE
## gentle 1.281078e-27 1.0000000 1849 0.10810811 TRUE
## opening 5.762908e-03 0.9394877 1849 0.10810811 TRUE
## previously NA NA 0 0.05405405 TRUE
## weight.N weight.Y weight.NA
## having 0.0000000 0.0000000 0.7106680
## shipped 0.0000000 0.7106680 0.0000000
## thats 0.6688640 0.0000000 0.0000000
## gentle 0.6317049 0.0000000 0.0000000
## opening 0.0000000 0.6317049 0.0000000
## previously 0.0000000 0.0000000 0.5984572
## term weight freq pos cor.y cor.y.abs
## having having 0.7106680 1 140 NA NA
## shipped shipped 0.7106680 1 284 0.02508765 0.02508765
## thats thats 0.6688640 1 310 -0.02155773 0.02155773
## gentle gentle 0.6317049 1 130 -0.02155773 0.02155773
## opening opening 0.6317049 1 216 0.02508765 0.02508765
## previously previously 0.5984572 1 246 NA NA
## chisq.stat chisq.pval nzv.freqRatio nzv.percentUnique nzv
## having NA NA 0 0.05405405 TRUE
## shipped 5.762908e-03 0.9394877 1849 0.10810811 TRUE
## thats 1.281078e-27 1.0000000 1849 0.10810811 TRUE
## gentle 1.281078e-27 1.0000000 1849 0.10810811 TRUE
## opening 5.762908e-03 0.9394877 1849 0.10810811 TRUE
## previously NA NA 0 0.05405405 TRUE
## weight.N weight.Y weight.NA
## having 0.0000000 0.0000000 0.7106680
## shipped 0.0000000 0.7106680 0.0000000
## thats 0.6688640 0.0000000 0.0000000
## gentle 0.6317049 0.0000000 0.0000000
## opening 0.0000000 0.6317049 0.0000000
## previously 0.0000000 0.0000000 0.5984572
## Warning in weighting(x): empty document(s): character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) charact
## [1] " Top_n stem term weights for descr.my:"
## Warning in weighting(x): empty document(s): character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) charact
## Warning in cor(docms_mtrx[glb_allobs_df$.src == "Train", ],
## as.numeric(glb_allobs_df[glb_allobs_df$.src == : the standard deviation is
## zero
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## [1] "Rows: 226; Cols: 14"
## term weight freq pos cor.y cor.y.abs chisq.stat
## condit condit 160.55353 492 52 -0.033248924 0.033248924 68.76178
## likenew likenew 123.78010 70 117 -0.043168766 0.043168766 22.07653
## use use 111.06226 285 210 0.003025811 0.003025811 45.28121
## in in 102.43546 432 98 -0.071653919 0.071653919 40.30764
## and and 92.37461 331 20 0.006010357 0.006010357 38.45444
## is is 87.72451 335 110 -0.042931491 0.042931491 26.34374
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## condit 3.361980e-06 36.82927 1.351351 TRUE 61.51671
## likenew 1.817939e-01 257.71429 0.972973 TRUE 54.11495
## use 1.518411e-02 86.63158 1.513514 TRUE 40.77891
## in 1.981535e-02 33.52174 1.351351 TRUE 46.12932
## and 7.095553e-02 55.24138 1.513514 TRUE 35.73653
## is 5.541564e-01 54.06667 1.567568 TRUE 35.26992
## weight.Y weight.NA
## condit 43.14002 55.89681
## likenew 19.52427 50.14088
## use 35.93377 34.34958
## in 26.82731 29.47884
## and 31.78712 24.85096
## is 23.45595 28.99864
## term weight freq pos cor.y cor.y.abs chisq.stat
## brandnew brandnew 37.154496 30 36 -0.014982381 0.014982381 13.498032
## doesnt doesnt 25.357692 57 67 -0.052798870 0.052798870 20.355151
## never never 11.829767 15 132 -0.003422891 0.003422891 7.655336
## set set 10.427103 13 178 0.035657781 0.035657781 8.724937
## restor restor 9.331353 13 168 -0.005404144 0.005404144 9.811595
## absolut absolut 8.451809 12 12 0.066008565 0.066008565 9.350376
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## brandnew 0.56388835 609.0000 0.8648649 TRUE 21.081563
## doesnt 0.06065895 129.4286 0.7027027 TRUE 11.924374
## never 0.36396438 459.7500 0.4324324 TRUE 4.776183
## set 0.18964858 920.0000 0.3783784 TRUE 2.246840
## restor 0.19950403 613.3333 0.4324324 TRUE 4.584716
## absolut 0.15481081 921.0000 0.3783784 TRUE 0.000000
## weight.Y weight.NA
## brandnew 11.651061 4.421872
## doesnt 4.248782 9.184536
## never 3.700799 3.352785
## set 5.534968 2.645295
## restor 3.357971 1.388666
## absolut 6.251752 2.200057
## term weight freq pos cor.y cor.y.abs chisq.stat
## 4g 4g 2.200200 3 9 0.0002965679 0.0002965679 2.023052e+00
## sprint sprint 2.037099 2 191 -0.0215577316 0.0215577316 1.281078e-27
## verizon verizon 2.037099 2 212 -0.0215577316 0.0215577316 1.281078e-27
## tmobil tmobil 1.893062 2 203 0.0094480109 0.0094480109 2.023052e+00
## ipad1 ipad1 1.834814 2 101 0.0067428569 0.0067428569 2.023052e+00
## gold gold 1.137069 1 86 -0.0215577316 0.0215577316 1.281078e-27
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## 4g 0.3636637 1848 0.1621622 TRUE 0.6989804
## sprint 1.0000000 1849 0.1081081 TRUE 0.7407634
## verizon 1.0000000 1849 0.1081081 TRUE 0.7407634
## tmobil 0.3636637 1848 0.1621622 TRUE 0.7407634
## ipad1 0.3636637 1848 0.1621622 TRUE 0.7977452
## gold 1.0000000 1849 0.1081081 TRUE 1.1370687
## weight.Y weight.NA
## 4g 0.6116078 0.8896114
## sprint 0.0000000 1.2963359
## verizon 0.0000000 1.2963359
## tmobil 1.1522986 0.0000000
## ipad1 1.0370687 0.0000000
## gold 0.0000000 0.0000000
## term weight freq pos cor.y cor.y.abs chisq.stat
## 4g 4g 2.200200 3 9 0.0002965679 0.0002965679 2.023052e+00
## sprint sprint 2.037099 2 191 -0.0215577316 0.0215577316 1.281078e-27
## verizon verizon 2.037099 2 212 -0.0215577316 0.0215577316 1.281078e-27
## tmobil tmobil 1.893062 2 203 0.0094480109 0.0094480109 2.023052e+00
## ipad1 ipad1 1.834814 2 101 0.0067428569 0.0067428569 2.023052e+00
## gold gold 1.137069 1 86 -0.0215577316 0.0215577316 1.281078e-27
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## 4g 0.3636637 1848 0.1621622 TRUE 0.6989804
## sprint 1.0000000 1849 0.1081081 TRUE 0.7407634
## verizon 1.0000000 1849 0.1081081 TRUE 0.7407634
## tmobil 0.3636637 1848 0.1621622 TRUE 0.7407634
## ipad1 0.3636637 1848 0.1621622 TRUE 0.7977452
## gold 1.0000000 1849 0.1081081 TRUE 1.1370687
## weight.Y weight.NA
## 4g 0.6116078 0.8896114
## sprint 0.0000000 1.2963359
## verizon 0.0000000 1.2963359
## tmobil 1.1522986 0.0000000
## ipad1 1.0370687 0.0000000
## gold 0.0000000 0.0000000
## Warning in weighting(x): empty document(s): character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) charact
## [,1]
## terms.post.stop.n -0.075731613
## terms.post.stop.n.log -0.062526435
## weight.post.stop.sum -0.045009208
## terms.post.stem.n -0.074990216
## terms.post.stem.n.log -0.062220631
## weight.post.stem.sum -0.047105442
## terms.n.stem.stop.Ratio 0.043562113
## weight.sum.stem.stop.Ratio 0.002381527
## Loading required package: wordcloud
## Loading required package: RColorBrewer
## [1] " Wordcloud post-stem term weights for descr.my:"
## Warning in wordcloud(d$word, d$freq, min.freq = glb_txt_terms_control
## $bounds$global[1]): likenew could not be fit on page. It will not be
## plotted.
## Warning: Removed 195 rows containing missing values (geom_text).
## label step_major step_minor label_minor bgn
## 5 extract.features_build.corpus 4 0 0 34.174
## 6 extract.features_extract.DTM 5 0 0 55.385
## end elapsed
## 5 55.385 21.211
## 6 NA NA
## [1] "Extracting term weights for descr.my..."
## Warning in weighting(x): empty document(s): character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) character(0) character(0) character(0) character(0)
## character(0) charact
## label step_major step_minor label_minor bgn
## 6 extract.features_extract.DTM 5 0 0 55.385
## 7 extract.features_report.DTM 6 0 0 56.665
## end elapsed
## 6 56.664 1.28
## 7 NA NA
## [1] "Reporting term weights for descr.my..."
## [1] " Full TermMatrix:"
## <<DocumentTermMatrix (documents: 2648, terms: 226)>>
## Non-/sparse entries: 11341/587107
## Sparsity : 98%
## Maximal term length: 10
## Weighting : term frequency - inverse document frequency (normalized) (tf-idf)
## Warning in cor(docms_mtrx[glb_allobs_df$.src == "Train", ],
## as.numeric(glb_allobs_df[glb_allobs_df$.src == : the standard deviation is
## zero
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## [1] " Sparse TermMatrix:"
## <<DocumentTermMatrix (documents: 2648, terms: 19)>>
## Non-/sparse entries: 4701/45611
## Sparsity : 91%
## Maximal term length: 7
## Weighting : term frequency - inverse document frequency (normalized) (tf-idf)
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in myplot_scatter(plt_terms_df, "freq", "weight", colorcol_name =
## "in.sprs"): converting in.sprs to class:factor
## Warning in rm(full_terms_mtrx): object 'full_terms_mtrx' not found
## label step_major step_minor label_minor bgn
## 7 extract.features_report.DTM 6 0 0 56.665
## 8 extract.features_bind.DTM 7 0 0 61.056
## end elapsed
## 7 61.055 4.39
## 8 NA NA
## Loading required package: tidyr
## [1] "Binding DTM for descr.my..."
## Warning in cor(docms_mtrx[glb_allobs_df$.src == "Train", ],
## as.numeric(glb_allobs_df[glb_allobs_df$.src == : the standard deviation is
## zero
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## Warning in chisq.test(docms_mtrx[glb_allobs_df$.src == "Train", ix],
## glb_allobs_df[glb_allobs_df$.src == : Chi-squared approximation may be
## incorrect
## label step_major step_minor label_minor bgn
## 8 extract.features_bind.DTM 7 0 0 61.056
## 9 extract.features_bind.DXM 8 0 0 63.955
## end elapsed
## 8 63.955 2.899
## 9 NA NA
## [1] "Binding DXM for descr.my..."
## Warning in rm(log_X_df, txt_X_df): object 'log_X_df' not found
# Use model info provided in description
# mydsp_obs(list(description.contains="a[[:digit:]]"), cols=glb_dsp_cols, all=TRUE)
# glb_allobs_df[glb_allobs_df$UniqueID == 12474, "prdline.my"] <- "iPad mini"
# glb_allobs_df[glb_allobs_df$UniqueID == 12474, "color"] <- "Space Gray"
# glb_allobs_df[glb_allobs_df$UniqueID == 12474, "cellular"] <- "0"
# glb_allobs_df[glb_allobs_df$UniqueID == 12474, "carrier"] <- "None"
#
# mydsp_obs(list(description.contains="m(.{4})ll"), cols=glb_dsp_cols, all=TRUE)
# glb_allobs_df[glb_allobs_df$UniqueID == 11360, "color"] <- "Black"
# glb_allobs_df[glb_allobs_df$UniqueID == 11360, "storage"] <- "64"
# glb_allobs_df[glb_allobs_df$UniqueID == 11360, "cellular"] <- "0"
# glb_allobs_df[glb_allobs_df$UniqueID == 11360, "carrier"] <- "None"
#
# glb_allobs_df[glb_allobs_df$UniqueID == 11361, "prdline.my"] <- "iPad Air"
# glb_allobs_df[glb_allobs_df$UniqueID == 11361, "storage"] <- "32"
# glb_allobs_df[glb_allobs_df$UniqueID == 11361, "color"] <- "White"
# glb_allobs_df[glb_allobs_df$UniqueID == 11361, "cellular"] <- "0"
# glb_allobs_df[glb_allobs_df$UniqueID == 11361, "carrier"] <- "None"
# mydsp_obs(list(description.contains="mini(?!m)"), perl=TRUE, cols="D.P.mini", all=TRUE)
# mydsp_obs(list(D.P.mini=1), cols="D.P.mini", all=TRUE)
# mydsp_obs(list(D.P.mini=1, productline="Unknown"), cols="D.P.mini", all=TRUE)
# mydsp_obs(list(description.contains="(?<![fhp])air"), perl=TRUE, all=TRUE)
# mydsp_obs(list(description.contains="air"), perl=FALSE, cols="D.P.air", all=TRUE)
# mydsp_obs(list(D.P.air=1, productline="Unknown"), cols="D.P.air", all=TRUE)
# print(mycreate_sqlxtab_df(glb_allobs_df, c("prdline.my", "productline", "D.P.mini",
# glb_rsp_var)))
# print(glb_allobs_df[(glb_allobs_df$productline == "Unknown") &
# (glb_allobs_df$D.P.mini > 0),
# c(glb_id_var, glb_category_var, glb_dsp_cols, glbFeatsText)])
# glb_allobs_df[(glb_allobs_df$D.P.mini == 1) & (glb_allobs_df$productline == "Unknown"),
# "prdline.my"] <- "iPad mini"
# print(mycreate_sqlxtab_df(glb_allobs_df, c("prdline.my", "productline", "D.P.air",
# glb_rsp_var)))
# print(glb_allobs_df[(glb_allobs_df$productline == "Unknown") &
# (glb_allobs_df$D.P.air > 0),
# c(glb_id_var, glb_category_var, glb_dsp_cols, glbFeatsText)])
# #glb_allobs_df[glb_allobs_df$UniqueID == 11863, "D.P.air"] <- 0
# glb_allobs_df[(glb_allobs_df$D.P.air == 1) & (glb_allobs_df$productline == "Unknown"),
# "prdline.my"] <- "iPad Air"
# print(glb_allobs_df[(glb_allobs_df$UniqueID %in% c(11767, 11811, 12156)),
# c(glb_id_var, "sold",
# "prdline.my", "color", "condition", "cellular", "carrier", "storage"
# #, "descr.my"
# )])
# glb_allobs_df[glb_allobs_df$UniqueID == 11767, "prdline.my"] <- "iPad 2"
# glb_allobs_df[glb_allobs_df$UniqueID == 11767, "storage"] <- "32"
# glb_allobs_df[glb_allobs_df$UniqueID == 11811, "prdline.my"] <- "iPad 2"
# glb_allobs_df[glb_allobs_df$UniqueID == 12156, "prdline.my"] <- "iPad 1"
# mydsp_obs(list(prdline.my="Unknown"), all=TRUE)
# tmp_allobs_df <- glb_allobs_df[, "prdline.my", FALSE]
# names(tmp_allobs_df) <- "old.prdline.my"
# glb_allobs_df$prdline.my <-
# plyr::revalue(glb_allobs_df$prdline.my, c(
# # "iPad 1" = "iPad",
# # "iPad 2" = "iPad2+",
# "iPad 3" = "iPad 3+",
# "iPad 4" = "iPad 3+",
# "iPad 5" = "iPad 3+",
#
# "iPad Air" = "iPadAir",
# "iPad Air 2" = "iPadAir",
#
# "iPad mini" = "iPadmini",
# "iPad mini 2" = "iPadmini 2+",
# "iPad mini 3" = "iPadmini 2+",
# "iPad mini Retina" = "iPadmini 2+"
# ))
# tmp_allobs_df$prdline.my <- glb_allobs_df[, "prdline.my"]
# print(mycreate_sqlxtab_df(tmp_allobs_df, c("prdline.my", "old.prdline.my")))
# print(mycreate_sqlxtab_df(tmp_allobs_df, c("prdline.my")))
# print(mycreate_sqlxtab_df(subset(glb_allobs_df, color == "Unknown"),
# c("color", "D.P.black", "D.P.gold", "D.P.spacegray", "D.P.white")))
# print(glb_allobs_df[(glb_allobs_df$color == "Unknown") & (glb_allobs_df$D.P.black > 0),
# c(glb_id_var, "color", "D.P.black", "sold", "prdline.my", "condition",
# "cellular", "carrier", "storage", "descr.my")])
# glb_allobs_df[glb_allobs_df$UniqueID == 12137, "color"] <- "Black"
# print(glb_allobs_df[(glb_allobs_df$color == "Unknown") & (glb_allobs_df$D.P.spacegray > 0),
# c(glb_id_var, "color", "D.P.spacegray", "prdline.my", "condition",
# "cellular", "carrier", "storage", "descr.my")])
# glb_allobs_df[glb_allobs_df$UniqueID %in% c(12106), "color"] <- "Space Gray"
# print(glb_allobs_df[(glb_allobs_df$color == "Unknown") & (glb_allobs_df$D.P.white > 0),
# c(glb_id_var, "color", "D.P.white", "prdline.my", "condition",
# "cellular", "carrier", "storage", "descr.my")])
# glb_allobs_df[glb_allobs_df$UniqueID %in% c(10573, 10809, 10925, 11735), "color"] <-
# "White"
glb_allobs_df$carrier.fctr <- as.factor(glb_allobs_df$carrier)
glb_allobs_df$cellular.fctr <- as.factor(glb_allobs_df$cellular)
glb_allobs_df$color.fctr <- as.factor(glb_allobs_df$color)
# glb_allobs_df$prdline.my.fctr <- as.factor(glb_allobs_df$prdline.my)
glb_allobs_df$storage.fctr <- as.factor(glb_allobs_df$storage)
#stop(here"); sav_allobs_df <- glb_allobs_df; glb_allobs_df <- sav_allobs_df
# glb_allobs_df %>%
# unite(prdl.descr.my, c(productline, as.numeric(D.chrs.n.log > 0), sep="#"))
# unite_("prdl.descr.my", interp(~c("productline", as.numeric(D.chrs.n.log > 0), sep="#")))
# print(sapply(names(glb_trnobs_df), function(col) sum(is.na(glb_trnobs_df[, col]))))
# print(sapply(names(glb_newobs_df), function(col) sum(is.na(glb_newobs_df[, col]))))
# print(myplot_scatter(glb_trnobs_df, "<col1_name>", "<col2_name>", smooth=TRUE))
#stop(here"); glb_to_sav(); glb_allobs_df <- sav_allobs_df
if (!is.null(glbFeatsPrice)) {
for (var in glbFeatsPrice) {
for (digit in 1:(log10(max(glb_allobs_df[, var], na.rm=TRUE)) + 1)) {
glb_allobs_df[, paste0(var, ".dgt", digit, ".is9")] <-
as.numeric(as.integer((as.integer(glb_allobs_df[, var]) %% (10 ^ digit)) /
(10 ^ (digit - 1))) == 9)
# glb_allobs_df[, paste0(var, ".dgt", digit, ".is9.fctr")] <-
# as.factor(as.integer((as.integer(glb_allobs_df[, var]) %% (10 ^ digit)) /
# (10 ^ (digit - 1))) == 9)
}
for (decimal in 1:2) {
glb_allobs_df[, paste0(var, ".dcm", decimal, ".is9")] <-
as.numeric(as.integer(glb_allobs_df[, var] * (10 ^ decimal)) %% 10 == 9)
# glb_allobs_df[, paste0(var, ".dcm", decimal, ".is9.fctr")] <-
# as.factor(as.integer(glb_allobs_df[, var] * (10 ^ decimal)) %% 10 == 9)
}
}
#as.numeric((as.integer(startprice) %% 10) == 9)
}
rm(corpus_lst
, glb_sprs_DTM_lst #, glb_full_DTM_lst
, txt_corpus, txt_vctr)
## Warning in rm(corpus_lst, glb_sprs_DTM_lst, txt_corpus, txt_vctr): object
## 'corpus_lst' not found
extract.features_chunk_df <- myadd_chunk(extract.features_chunk_df, "extract.features_end",
major.inc=TRUE)
## label step_major step_minor label_minor bgn
## 9 extract.features_bind.DXM 8 0 0 63.955
## 10 extract.features_end 9 0 0 245.909
## end elapsed
## 9 245.909 181.954
## 10 NA NA
myplt_chunk(extract.features_chunk_df)
## label step_major
## 9 extract.features_bind.DXM 8
## 5 extract.features_build.corpus 4
## 7 extract.features_report.DTM 6
## 8 extract.features_bind.DTM 7
## 3 extract.features_process.text 3
## 6 extract.features_extract.DTM 5
## 2 extract.features_factorize.str.vars 2
## 1 extract.features_bgn 1
## 4 extract.features_process.text_reporting_compound_terms 3
## step_minor label_minor bgn end elapsed duration
## 9 0 0 63.955 245.909 181.954 181.954
## 5 0 0 34.174 55.385 21.211 21.211
## 7 0 0 56.665 61.055 4.390 4.390
## 8 0 0 61.056 63.955 2.899 2.899
## 3 0 0 32.655 34.168 1.514 1.513
## 6 0 0 55.385 56.664 1.280 1.279
## 2 0 0 32.570 32.654 0.084 0.084
## 1 0 0 32.551 32.569 0.018 0.018
## 4 1 1 34.169 34.174 0.005 0.005
## [1] "Total Elapsed Time: 245.909 secs"
# if (glb_save_envir)
# save(glb_feats_df,
# glb_allobs_df, #glb_trnobs_df, glb_fitobs_df, glb_OOBobs_df, glb_newobs_df,
# file=paste0(glb_out_pfx, "extract_features_dsk.RData"))
# load(paste0(glb_out_pfx, "extract_features_dsk.RData"))
replay.petrisim(pn=glb_analytics_pn,
replay.trans=(glb_analytics_avl_objs <- c(glb_analytics_avl_objs,
"data.training.all","data.new")), flip_coord=TRUE)
## time trans "bgn " "fit.data.training.all " "predict.data.new " "end "
## 0.0000 multiple enabled transitions: data.training.all data.new model.selected firing: data.training.all
## 1.0000 1 2 1 0 0
## 1.0000 multiple enabled transitions: data.training.all data.new model.selected model.final data.training.all.prediction firing: data.new
## 2.0000 2 1 1 1 0
#glb_chunks_df <- myadd_chunk(glb_chunks_df, "manage.missing.data", major.inc=TRUE)
3.0: extract featuresglb_chunks_df <- myadd_chunk(glb_chunks_df, "manage.missing.data", major.inc=FALSE)
## label step_major step_minor label_minor bgn end
## 5 extract.features 3 0 0 32.543 251.041
## 6 manage.missing.data 3 1 1 251.042 NA
## elapsed
## 5 218.499
## 6 NA
# If mice crashes with error: Error in get(as.character(FUN), mode = "function", envir = envir) : object 'State' of mode 'function' was not found
# consider excluding 'State' as a feature
# print(sapply(names(glb_trnobs_df), function(col) sum(is.na(glb_trnobs_df[, col]))))
# print(sapply(names(glb_newobs_df), function(col) sum(is.na(glb_newobs_df[, col]))))
# glb_trnobs_df <- na.omit(glb_trnobs_df)
# glb_newobs_df <- na.omit(glb_newobs_df)
# df[is.na(df)] <- 0
mycheck_problem_data(glb_allobs_df, featsExclude = glbFeatsExclude,
fctrMaxUniqVals = glbFctrMaxUniqVals)
## [1] "numeric data missing in : "
## sold sold.fctr
## 798 798
## [1] "numeric data w/ 0s in : "
## biddable sold
## 1437 995
## sprice.log10 cellular.fctr
## 31 1590
## D.terms.post.stop.n D.terms.post.stop.n.log
## 1516 1516
## D.weight.post.stop.sum D.terms.post.stem.n
## 1516 1516
## D.terms.post.stem.n.log D.weight.post.stem.sum
## 1516 1516
## D.T.condit D.T.use
## 2156 2363
## D.T.in. D.T.good
## 2216 2451
## D.T.screen D.T.with
## 2440 2434
## D.T.of D.T.mint
## 2497 2585
## D.T.or D.T.cosmet
## 2523 2531
## D.T.minor D.T.light
## 2531 2567
## D.T.X100 D.T.from
## 2584 2591
## D.T.hous D.wrds.n.log
## 2576 1513
## D.wrds.unq.n.log D.weight.sum
## 1516 1516
## D.ratio.weight.sum.wrds.n D.chrs.n.log
## 1516 1513
## D.chrs.uppr.n.log D.dgts.n.log
## 1515 2452
## D.chrs.pnct01.n.log D.chrs.pnct02.n.log
## 2570 2648
## D.chrs.pnct03.n.log D.chrs.pnct04.n.log
## 2647 2648
## D.chrs.pnct05.n.log D.chrs.pnct06.n.log
## 2582 2596
## D.chrs.pnct07.n.log D.chrs.pnct08.n.log
## 2611 2572
## D.chrs.pnct09.n.log D.chrs.pnct10.n.log
## 2632 2639
## D.chrs.pnct11.n.log D.chrs.pnct12.n.log
## 2294 2534
## D.chrs.pnct13.n.log D.chrs.pnct14.n.log
## 1930 2574
## D.chrs.pnct15.n.log D.chrs.pnct16.n.log
## 2628 2639
## D.chrs.pnct17.n.log D.chrs.pnct18.n.log
## 2646 2647
## D.chrs.pnct19.n.log D.chrs.pnct20.n.log
## 2648 2648
## D.chrs.pnct21.n.log D.chrs.pnct22.n.log
## 2648 2648
## D.chrs.pnct23.n.log D.chrs.pnct24.n.log
## 2648 2648
## D.chrs.pnct25.n.log D.chrs.pnct26.n.log
## 2648 2648
## D.chrs.pnct27.n.log D.chrs.pnct28.n.log
## 2648 2640
## D.chrs.pnct29.n.log D.chrs.pnct30.n.log
## 2648 2648
## D.wrds.stop.n.log D.P.http
## 1965 2648
## D.P.mini D.P.air
## 2615 2627
## D.P.black D.P.white
## 2631 2638
## D.P.gold D.P.spacegray
## 2647 2642
## startprice.dgt1.is9 startprice.dgt2.is9
## 1779 2290
## startprice.dgt3.is9 startprice.dcm1.is9
## 2643 1653
## startprice.dcm2.is9
## 1826
## [1] "numeric data w/ Infs in : "
## named integer(0)
## [1] "numeric data w/ NaNs in : "
## named integer(0)
## [1] "string data missing in : "
## description condition cellular carrier color storage
## 1513 0 0 0 0 0
## productline .grpid descr.my
## 0 NA 1513
# glb_allobs_df <- na.omit(glb_allobs_df)
# Not refactored into mydsutils.R since glb_*_df might be reassigned
glb_impute_missing_data <- function() {
require(mice)
set.seed(glb_mice_complete.seed)
inp_impent_df <- glb_allobs_df[, setdiff(names(glb_allobs_df),
union(glbFeatsExclude, glb_rsp_var))]
print("Summary before imputation: ")
print(summary(inp_impent_df))
out_impent_df <- complete(mice(inp_impent_df))
print(summary(out_impent_df))
ret_vars <- sapply(names(out_impent_df),
function(col) ifelse(!identical(out_impent_df[, col],
inp_impent_df[, col]),
col, ""))
ret_vars <- ret_vars[ret_vars != ""]
# complete(mice()) changes attributes of factors even though values don't change
for (col in ret_vars) {
if (inherits(out_impent_df[, col], "factor")) {
if (identical(as.numeric(out_impent_df[, col]),
as.numeric(inp_impent_df[, col])))
ret_vars <- setdiff(ret_vars, col)
}
}
return(out_impent_df[, ret_vars])
}
if (glb_impute_na_data &&
(length(myfind_numerics_missing(glb_allobs_df)) > 0) &&
(ncol(nonna_df <- glb_impute_missing_data()) > 0)) {
for (col in names(nonna_df)) {
glb_allobs_df[, paste0(col, ".nonNA")] <- nonna_df[, col]
glbFeatsExclude <- c(glbFeatsExclude, col)
}
}
mycheck_problem_data(glb_allobs_df, featsExclude = glbFeatsExclude,
fctrMaxUniqVals = glbFctrMaxUniqVals, terminate = TRUE)
## [1] "numeric data missing in : "
## sold sold.fctr
## 798 798
## [1] "numeric data w/ 0s in : "
## biddable sold
## 1437 995
## sprice.log10 cellular.fctr
## 31 1590
## D.terms.post.stop.n D.terms.post.stop.n.log
## 1516 1516
## D.weight.post.stop.sum D.terms.post.stem.n
## 1516 1516
## D.terms.post.stem.n.log D.weight.post.stem.sum
## 1516 1516
## D.T.condit D.T.use
## 2156 2363
## D.T.in. D.T.good
## 2216 2451
## D.T.screen D.T.with
## 2440 2434
## D.T.of D.T.mint
## 2497 2585
## D.T.or D.T.cosmet
## 2523 2531
## D.T.minor D.T.light
## 2531 2567
## D.T.X100 D.T.from
## 2584 2591
## D.T.hous D.wrds.n.log
## 2576 1513
## D.wrds.unq.n.log D.weight.sum
## 1516 1516
## D.ratio.weight.sum.wrds.n D.chrs.n.log
## 1516 1513
## D.chrs.uppr.n.log D.dgts.n.log
## 1515 2452
## D.chrs.pnct01.n.log D.chrs.pnct02.n.log
## 2570 2648
## D.chrs.pnct03.n.log D.chrs.pnct04.n.log
## 2647 2648
## D.chrs.pnct05.n.log D.chrs.pnct06.n.log
## 2582 2596
## D.chrs.pnct07.n.log D.chrs.pnct08.n.log
## 2611 2572
## D.chrs.pnct09.n.log D.chrs.pnct10.n.log
## 2632 2639
## D.chrs.pnct11.n.log D.chrs.pnct12.n.log
## 2294 2534
## D.chrs.pnct13.n.log D.chrs.pnct14.n.log
## 1930 2574
## D.chrs.pnct15.n.log D.chrs.pnct16.n.log
## 2628 2639
## D.chrs.pnct17.n.log D.chrs.pnct18.n.log
## 2646 2647
## D.chrs.pnct19.n.log D.chrs.pnct20.n.log
## 2648 2648
## D.chrs.pnct21.n.log D.chrs.pnct22.n.log
## 2648 2648
## D.chrs.pnct23.n.log D.chrs.pnct24.n.log
## 2648 2648
## D.chrs.pnct25.n.log D.chrs.pnct26.n.log
## 2648 2648
## D.chrs.pnct27.n.log D.chrs.pnct28.n.log
## 2648 2640
## D.chrs.pnct29.n.log D.chrs.pnct30.n.log
## 2648 2648
## D.wrds.stop.n.log D.P.http
## 1965 2648
## D.P.mini D.P.air
## 2615 2627
## D.P.black D.P.white
## 2631 2638
## D.P.gold D.P.spacegray
## 2647 2642
## startprice.dgt1.is9 startprice.dgt2.is9
## 1779 2290
## startprice.dgt3.is9 startprice.dcm1.is9
## 2643 1653
## startprice.dcm2.is9
## 1826
## [1] "numeric data w/ Infs in : "
## named integer(0)
## [1] "numeric data w/ NaNs in : "
## named integer(0)
## [1] "string data missing in : "
## description condition cellular carrier color storage
## 1513 0 0 0 0 0
## productline .grpid descr.my
## 0 NA 1513
3.1: manage missing dataglb_chunks_df <- myadd_chunk(glb_chunks_df, "cluster.data", major.inc=FALSE)
## label step_major step_minor label_minor bgn end
## 6 manage.missing.data 3 1 1 251.042 251.204
## 7 cluster.data 3 2 2 251.205 NA
## elapsed
## 6 0.162
## 7 NA
mycompute_entropy_df <- function(obs_df, entropy_var, by_var=NULL) {
require(lazyeval)
require(dplyr)
require(tidyr)
if (is.null(by_var)) {
by_var <- ".default"
obs_df$.default <- as.factor(".default")
}
if (!any(grepl(".clusterid", names(obs_df), fixed=TRUE)))
obs_df$.clusterid <- 1
cluster_df <- obs_df %>%
count_(c(by_var, ".clusterid", entropy_var)) %>%
dplyr::filter(n > 0) %>%
dplyr::filter_(interp(~(!is.na(var)), var=as.name(entropy_var))) %>%
unite_(paste0(by_var, ".clusterid"),
c(interp(by_var), ".clusterid")) %>%
spread_(interp(entropy_var), "n", fill=0)
# head(cluster_df)
# sum(cluster_df$n)
tmp.entropy <- sapply(1:nrow(cluster_df),
function(row) entropy(as.numeric(cluster_df[row, -1]), method = "ML"))
tmp.knt <- sapply(1:nrow(cluster_df),
function(row) sum(as.numeric(cluster_df[row, -1])))
cluster_df$.entropy <- tmp.entropy; cluster_df$.knt <- tmp.knt
#print(cluster_df)
return(cluster_df)
}
if (glb_cluster) {
require(proxy)
#require(hash)
require(dynamicTreeCut)
require(entropy)
require(tidyr)
require(ggdendro)
mywgtdcosine_dist <- function(x, y=NULL, weights=NULL) {
if (!inherits(x, "matrix"))
x <- as.matrix(x)
if (is.null(weights))
weights <- rep(1, ncol(x))
wgtsx <- matrix(rep(weights / sum(weights), nrow(x)), nrow = nrow(x),
byrow = TRUE)
wgtdx <- x * wgtsx
wgtdxsqsum <- as.matrix(rowSums((x ^ 2) * wgtsx), byrow=FALSE)
denom <- sqrt(wgtdxsqsum %*% t(wgtdxsqsum))
ret_mtrx <- 1 - ((sum(weights) ^ 1) * (wgtdx %*% t(wgtdx)) / denom)
ret_mtrx[is.nan(ret_mtrx)] <- 1
diag(ret_mtrx) <- 0
return(ret_mtrx)
}
#pr_DB$delete_entry("mywgtdcosine");
# Need to do this only once across runs ?
if (!pr_DB$entry_exists("mywgtdcosine")) {
pr_DB$set_entry(FUN = mywgtdcosine_dist, names = c("mywgtdcosine"))
pr_DB$modify_entry(names="mywgtdcosine", type="metric", loop=FALSE)
}
#pr_DB$get_entry("mywgtdcosine")
# glb_hash <- hash(key=unique(glb_allobs_df$myCategory),
# values=1:length(unique(glb_allobs_df$myCategory)))
# glb_hash_lst <- hash(key=unique(glb_allobs_df$myCategory),
# values=1:length(unique(glb_allobs_df$myCategory)))
#stop(here"); glb_to_sav(); glb_allobs_df <- sav_allobs_df
cluster_vars <- grep(paste0("[",
toupper(paste0(substr(glbFeatsText, 1, 1), collapse = "")),
"]\\.[PT]\\."),
names(glb_allobs_df), value = TRUE)
# Assign correlations with rsp_var as weights for cosine distance
print("Clustering features: ")
cluster_vars_df <- data.frame(abs.cor.y = abs(cor(
glb_allobs_df[glb_allobs_df$.src == "Train", cluster_vars],
as.numeric(glb_allobs_df[glb_allobs_df$.src == "Train", glb_rsp_var]),
use = "pairwise.complete.obs")))
print(tail(cluster_vars_df <- orderBy(~ abs.cor.y,
subset(cluster_vars_df, !is.na(abs.cor.y))), 5))
print(sprintf(" .rnorm cor: %0.4f",
cor(glb_allobs_df[glb_allobs_df$.src == "Train", ".rnorm"],
as.numeric(glb_allobs_df[glb_allobs_df$.src == "Train", glb_rsp_var]),
use = "pairwise.complete.obs")))
print(sprintf("glb_allobs_df Entropy: %0.4f",
allobs_ent <- entropy(table(glb_allobs_df[, glb_cluster_entropy_var]),
method="ML")))
print(category_df <- mycompute_entropy_df(obs_df=glb_allobs_df,
entropy_var=glb_cluster_entropy_var,
by_var=glb_category_var))
print(sprintf("glb_allobs_df$%s Entropy: %0.4f (%0.4f pct)",
glb_category_var,
category_ent <- weighted.mean(category_df$.entropy, category_df$.knt),
100 * category_ent / allobs_ent))
glb_allobs_df$.clusterid <- 1
#print(max(table(glb_allobs_df$myCategory.fctr) / 20))
#stop(here"); glb_to_sav()
grp_ids <- sort(unique(glb_allobs_df[, glb_category_var]))
glb_cluster_size_df_lst <- list()
png(paste0(glb_out_pfx, "FeatsTxtClusters.png"),
width = 480 * 2, height = 480 * length(grp_ids))
grid.newpage()
pushViewport(viewport(layout = grid.layout(nrow = length(grp_ids), ncol = 2)))
pltIx <- 1
for (grp in grp_ids) {
# if (grep(grp, levels(grp_ids)) <= 6) next
# if (grep(grp, levels(grp_ids)) > 9) next
# if (grep(grp, levels(grp_ids)) != 10) next
print(sprintf("Category: %s", grp))
ctgry_allobs_df <- glb_allobs_df[glb_allobs_df[, glb_category_var] == grp, ]
if (!inherits(ctgry_allobs_df[, glb_cluster_entropy_var], "factor"))
ctgry_allobs_df[, glb_cluster_entropy_var] <-
as.factor(ctgry_allobs_df[, glb_cluster_entropy_var])
#dstns_dist <- proxy::dist(ctgry_allobs_df[, cluster_vars], method = "cosine")
dstns_dist <- proxy::dist(ctgry_allobs_df[, row.names(cluster_vars_df)],
method = "mywgtdcosine",
weights = cluster_vars_df$abs.cor.y)
# Custom distance functions return a crossdist object
#dstns_mtrx <- as.matrix(dstns_dist)
dstns_mtrx <- matrix(as.vector(dstns_dist), nrow=attr(dstns_dist, "dim")[1],
dimnames=attr(dstns_dist, "dimnames"))
dstns_dist <- as.dist(dstns_mtrx)
print(sprintf("max distance(%0.4f) pair:", max(dstns_mtrx)))
# print(dim(dstns_mtrx))
# print(sprintf("which.max: %d", which.max(dstns_mtrx)))
row_ix <- ceiling(which.max(dstns_mtrx) / ncol(dstns_mtrx))
col_ix <- which.max(dstns_mtrx[row_ix, ])
# print(sprintf("row_ix: %d", row_ix)); print(sprintf("col_ix: %d", col_ix));
# print(dim(ctgry_allobs_df))
print(ctgry_allobs_df[c(row_ix, col_ix),
c(glb_id_var, glb_cluster_entropy_var, glb_category_var, glbFeatsText, cluster_vars)])
min_dstns_mtrx <- dstns_mtrx
diag(min_dstns_mtrx) <- 1
# Float representations issue -2.22e-16 vs. 0.0000
print(sprintf("min distance(%0.4f) pair:", min(min_dstns_mtrx)))
row_ix <- ceiling(which.min(min_dstns_mtrx) / ncol(min_dstns_mtrx))
col_ix <- which.min(min_dstns_mtrx[row_ix, ])
print(ctgry_allobs_df[c(row_ix, col_ix),
c(glb_id_var, glb_cluster_entropy_var, glb_category_var, glbFeatsText,
cluster_vars)])
set.seed(glb_cluster.seed)
clusters <- hclust(dstns_dist, method = "ward.D2")
# Workaround to avoid "Error in cutree(dendro, h = heightcutoff) : the 'height' component of 'tree' is not sorted (increasingly)"
if (with(clusters,all.equal(height,sort(height))))
clusters$height <- round(clusters$height,6)
clusters$labels <- ctgry_allobs_df[, glb_id_var]
clustersDD <- dendro_data(clusters)
clustersDD$labels[, glb_rsp_var] <- sapply(clustersDD$labels$label, function(id)
ctgry_allobs_df[id == ctgry_allobs_df[, glb_id_var], glb_rsp_var])
print(ggdendrogram(clustersDD, rotate = TRUE, size = 2) +
geom_point(data = clustersDD$labels,
aes_string(x = "x", color = glb_rsp_var), y = min(clustersDD$segments$y)) +
coord_flip(ylim = c(min(clustersDD$segments$y),
max(clustersDD$segments$y))) +
ggtitle(grp),
vp = viewport(layout.pos.row = pltIx, layout.pos.col = 1))
# clusters$labels <- ctgry_allobs_df[, glb_id_var]
# clustersDD <- dendro_data(clusters)
# clustersDD$labels$color <- sapply(clustersDD$labels$label, function(id)
# ctgry_allobs_df[id == ctgry_allobs_df[, glb_id_var], glb_rsp_var])
# print(ggdendrogram(clustersDD, rotate = TRUE, size = 2) +
# geom_point(data = clustersDD$labels,
# aes_string(x = "x", color = "color"), y = min(clustersDD$segments$y)) +
# coord_flip(ylim = c(min(clustersDD$segments$y),
# max(clustersDD$segments$y))))
# print(ggdendrogram(clustersDD, rotate = TRUE, size = 2) +
# geom_point(data = clustersDD$labels,
# aes_string(x = "x", y = "y", color = "color")))
# myplclust(clusters, lab=ctgry_allobs_df[, glb_id_var],
# lab.col=unclass(ctgry_allobs_df[, glb_cluster_entropy_var]))
opt_minclustersize_df <- data.frame(minclustersize = nrow(ctgry_allobs_df),
entropy = entropy(table(ctgry_allobs_df[, glb_cluster_entropy_var]),
method = "ML"))
for (minclustersize in
as.integer(seq(nrow(ctgry_allobs_df) / 2, nrow(ctgry_allobs_df) / 10,
length = 5))) {
clusterGroups <- cutreeDynamic(clusters, minClusterSize = minclustersize,
method = "tree", deepSplit = 0)
# Unassigned groups are labeled 0; the largest group has label 1
clusterGroups[clusterGroups == 0] <- 1
ctgry_allobs_df$.clusterid <- clusterGroups
ctgry_clstrs_df <- mycompute_entropy_df(ctgry_allobs_df,
glb_cluster_entropy_var)
opt_minclustersize_df <- rbind(opt_minclustersize_df,
data.frame(minclustersize = minclustersize,
entropy = weighted.mean(ctgry_clstrs_df$.entropy, ctgry_clstrs_df$.knt)))
}
opt_minclustersize <-
opt_minclustersize_df$minclustersize[which.min(opt_minclustersize_df$entropy)]
opt_minclustersize_df$.color <-
ifelse(opt_minclustersize_df$minclustersize == opt_minclustersize,
"red", "blue")
print(ggplot(data = opt_minclustersize_df,
mapping = aes(x = minclustersize, y = entropy)) +
geom_point(aes(color = .color)) + scale_color_identity() +
guides(color = "none") + geom_line(),
vp = viewport(layout.pos.row = pltIx, layout.pos.col = 2))
glb_cluster_size_df_lst[[grp]] <- opt_minclustersize_df
# select minclustersize that minimizes entropy
clusterGroups <- cutreeDynamic(clusters, minClusterSize = opt_minclustersize,
method = "tree",
deepSplit = 0)
# Unassigned groups are labeled 0; the largest group has label 1
table(clusterGroups, ctgry_allobs_df[, glb_cluster_entropy_var],
useNA = "ifany")
clusterGroups[clusterGroups == 0] <- 1
table(clusterGroups, ctgry_allobs_df[, glb_cluster_entropy_var], useNA = "ifany")
glb_allobs_df[glb_allobs_df[, glb_category_var] == grp,]$.clusterid <-
clusterGroups
pltIx <- pltIx + 1
}
dev.off()
#all.equal(sav_allobs_df_clusterid, glb_allobs_df$.clusterid)
print(cluster_df <- mycompute_entropy_df(obs_df=glb_allobs_df,
entropy_var=glb_cluster_entropy_var,
by_var=glb_category_var))
print(sprintf("glb_allobs_df$%s$.clusterid Entropy: %0.4f (%0.4f pct)",
glb_category_var,
cluster_ent <- weighted.mean(cluster_df$.entropy, cluster_df$.knt),
100 * cluster_ent / category_ent))
glb_allobs_df$.clusterid.fctr <- as.factor(glb_allobs_df$.clusterid)
# .clusterid.fctr is created automatically (probably ?) later
glbFeatsExclude <- c(glbFeatsExclude, ".clusterid")
if (!is.null(glb_category_var))
# glb_interaction_only_feats_lst[ifelse(grepl("\\.fctr", glb_category_var),
# glb_category_var,
# paste0(glb_category_var, ".fctr"))] <-
# c(".clusterid.fctr")
glb_interaction_only_feats_lst[[".clusterid.fctr"]] <-
ifelse(grepl("\\.fctr", glb_category_var), glb_category_var,
paste0(glb_category_var, ".fctr"))
if (glbFeatsTextClusterVarsExclude)
glbFeatsExclude <- c(glbFeatsExclude, cluster_vars)
}
## Loading required package: proxy
##
## Attaching package: 'proxy'
##
## The following objects are masked from 'package:stats':
##
## as.dist, dist
##
## The following object is masked from 'package:base':
##
## as.matrix
##
## Loading required package: dynamicTreeCut
## Loading required package: entropy
## Loading required package: ggdendro
## [1] "Clustering features: "
## Warning in cor(glb_allobs_df[glb_allobs_df$.src == "Train",
## cluster_vars], : the standard deviation is zero
## abs.cor.y
## D.T.with 0.06608760
## D.T.in. 0.07165392
## D.T.cosmet 0.08848086
## D.T.X100 0.11139850
## D.T.hous 0.12927488
## [1] " .rnorm cor: -0.0013"
## [1] "glb_allobs_df Entropy: 0.6903"
## Loading required package: lazyeval
## Source: local data frame [10 x 5]
##
## prdl.my.fctr.clusterid N Y .entropy .knt
## (chr) (dbl) (dbl) (dbl) (dbl)
## 1 Unknown_1 122 82 0.6737987 204
## 2 iPad1_1 100 125 0.6869616 225
## 3 iPad2_1 139 147 0.6927559 286
## 4 iPad3_1 73 80 0.6921002 153
## 5 iPad4_1 93 64 0.6759893 157
## 6 iPadAir2_1 100 71 0.6786969 171
## 7 iPadAir_1 102 78 0.6842318 180
## 8 iPadmini2_1 58 49 0.6896056 107
## 9 iPadmini3_1 63 27 0.6108643 90
## 10 iPadmini_1 145 132 0.6920455 277
## [1] "glb_allobs_df$prdl.my.fctr Entropy: 0.6821 (98.8123 pct)"
## [1] "Category: Unknown"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 5 10005 N Unknown
## 24 10024 N Unknown
## descr.my
## 5 Please feel free to buy. All products have been thoroughly inspected, cleaned and tested to be 100%
## 24
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of D.T.mint
## 5 0 0 0 0 0 0 0 0
## 24 0 0 0 0 0 0 0 0
## D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from D.T.hous
## 5 0 0 0 0 0.4475573 0 0
## 24 0 0 0 0 0.0000000 0 0
## D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 5 0 0 0 0 0 0 0
## 24 0 0 0 0 0 0 0
## [1] "min distance(0.8891) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 5 10005 N Unknown
## 419 10420 Y Unknown
## descr.my
## 5 Please feel free to buy. All products have been thoroughly inspected, cleaned and tested to be 100%
## 419 THIS ITEM WAS A STORE DEMO BUT HAS 100% BEEN RESTORED TO FACTORY SETTINGS AND IS READY FOR USE. DOES
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 5 0 0.0000000 0 0 0 0 0
## 419 0 0.1891688 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 5 0 0 0 0 0 0.4475573 0
## 419 0 0 0 0 0 0.3159228 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 5 0 0 0 0 0 0 0
## 419 0 0 0 0 0 0 0
## D.P.spacegray
## 5 0
## 419 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "Category: iPad1"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 9 10009 Y iPad1 0 0 0
## 12 10012 N iPad1 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet
## 9 0 0 0 0 0 0 0
## 12 0 0 0 0 0 0 0
## D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini
## 9 0 0 0 0 0 0 0
## 12 0 0 0 0 0 0 0
## D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 9 0 0 0 0 0
## 12 0 0 0 0 0
## [1] "min distance(0.8976) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 2290 12301 <NA> iPad1
## 2326 12337 <NA> iPad1
## descr.my
## 2290 A device listed in Average/Fair condition with some scratches, scuffs on the housing & screen (do
## 2326 A device listed in Average/Fair condition with some scratches, scuffs on the housing & screen (do
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 2290 0.1618782 0 0.1743867 0 0.2446832 0.241948 0
## 2326 0.1618782 0 0.1743867 0 0.2446832 0.241948 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 2290 0 0 0 0 0 0 0
## 2326 0 0 0 0 0 0 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 2290 0.3467175 0 0 0 0 0 0
## 2326 0.3467175 0 0 0 0 0 0
## D.P.spacegray
## 2290 0
## 2326 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "Category: iPad2"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 1 10001 N iPad2
## 21 10021 Y iPad2
## descr.my D.T.condit D.T.use
## 1 iPad is in 8point5+ out of 10 cosmetic condition! 0.3035216 0
## 21 Crack on screen. 0.0000000 0
## D.T.in. D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or
## 1 0.326975 0 0.000000 0 0.5165353 0 0
## 21 0.000000 0 1.223416 0 0.0000000 0 0
## D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http
## 1 0.5625403 0 0 0 0 0 0
## 21 0.0000000 0 0 0 0 0 0
## D.P.mini D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 1 0 0 0 0 0 0
## 21 0 0 0 0 0 0
## [1] "min distance(0.8886) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 431 10432 N iPad2
## 664 10665 N iPad2
## descr.my
## 431 *FREE* Same-Day Ship | Factory Refurbished | 90-Day Warranty | 100% Functional, Includes All Major
## 664 100% Fully Functional, Clean ESN & iCloud Clear, professionally restored, inspected, & tested. This
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 431 0 0 0 0 0 0 0
## 664 0 0 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 431 0 0 0 0 0 0.4882443 0
## 664 0 0 0 0 0 0.4882443 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 431 0 0 0 0 0 0 0
## 664 0 0 0 0 0 0 0
## D.P.spacegray
## 431 0
## 664 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "No module detected"
## [1] "Category: iPad3"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 17 10017 Y iPad3
## 37 10037 Y iPad3
## descr.my
## 17 Great working iPad. Very minor surface scratches on back as pictured. Other very light scratching
## 37 Rarely ever used it.
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 17 0 0.000000 0 0 0 0 0
## 37 0 1.607935 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 17 0 0 0 0.3214516 0.3593455 0 0
## 37 0 0 0 0.0000000 0.0000000 0 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 17 0 0 0 0 0 0 0
## 37 0 0 0 0 0 0 0
## D.P.spacegray
## 17 0
## 37 0
## [1] "min distance(0.8886) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 946 10949 N iPad3
## 1910 11921 <NA> iPad3
## descr.my
## 946 *FREE* Same-Day Ship | 90-Day Warranty | 100% Functional, Includes All Major Accessories, Shows
## 1910 *FREE* Same-Day Ship | 90-Day Warranty | 100% Functional, Includes All Major Accessories, Shows
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 946 0 0 0 0 0 0 0
## 1910 0 0 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 946 0 0 0 0 0 0.4882443 0
## 1910 0 0 0 0 0 0.4882443 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 946 0 0 0 0 0 0 0
## 1910 0 0 0 0 0 0 0
## D.P.spacegray
## 946 0
## 1910 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "Category: iPad4"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 3 10003 Y iPad4 0 0 0
## 10 10010 Y iPad4 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet
## 3 0 0 0 0 0 0 0
## 10 0 0 0 0 0 0 0
## D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini
## 3 0 0 0 0 0 0 0
## 10 0 0 0 0 0 0 0
## D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 3 0 0 0 0 0
## 10 0 0 0 0 0
## [1] "min distance(0.8886) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 63 10063 N iPad4
## 2308 12319 <NA> iPad4
## descr.my
## 63 *FREE* Same-Day Ship | 90-Day Warranty | 100% Functional, Includes All Major Accessories, Shows
## 2308 *FREE* Same-Day Ship | 90-Day Warranty | 100% Functional, Includes All Major Accessories, Shows
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 63 0 0 0 0 0 0 0
## 2308 0 0 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 63 0 0 0 0 0 0.4882443 0
## 2308 0 0 0 0 0 0.4882443 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 63 0 0 0 0 0 0 0
## 2308 0 0 0 0 0 0 0
## D.P.spacegray
## 63 0
## 2308 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "Category: iPadAir"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 16 10016 N iPadAir 0 0 0
## 25 10025 N iPadAir 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet
## 16 0 0 0 0 0 0 0
## 25 0 0 0 0 0 0 0
## D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini
## 16 0 0 0 0 0 0 0
## 25 0 0 0 0 0 0 0
## D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 16 0 0 0 0 0
## 25 0 0 0 0 0
## [1] "min distance(0.8886) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 167 10167 N iPadAir
## 1156 11162 N iPadAir
## descr.my
## 167 LIKE BRANDNEW 100% MONEY BACK GUARANTEE
## 1156 *FREE* Same-Day Ship | 90-Day Warranty | 100% Functional, Includes All Major Accessories, Shows
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 167 0 0 0 0 0 0 0
## 1156 0 0 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 167 0 0 0 0 0 1.7902291 0
## 1156 0 0 0 0 0 0.4882443 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 167 0 0 0 0 0 0 0
## 1156 0 0 0 0 0 0 0
## D.P.spacegray
## 167 0
## 1156 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "Category: iPadAir2"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 19 10019 Y iPadAir2 0 0 0
## 35 10035 N iPadAir2 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet
## 19 0 0 0 0 0 0 0
## 35 0 0 0 0 0 0 0
## D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini
## 19 0 0 0 0 0 0 0
## 35 0 0 0 0 0 0 0
## D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 19 0 0 0 0 0
## 35 0 0 0 0 0
## [1] "min distance(0.9283) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 1214 11220 N iPadAir2
## 1856 11867 <NA> iPadAir2
## descr.my
## 1214 Brandnew, iPad untouched and still wrapped in original plastic inside box. Opened only to verify
## 1856 Brandnew factory sealed iPad in an OPEN BOX...THE BOX ITSELF IS HEAVILY DISTRESSED(see
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 1214 0 0 0.2378000 0 0 0 0
## 1856 0 0 0.2012154 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 1214 0 0 0 0 0 0 0
## 1856 0 0 0 0 0 0 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 1214 0 0 0 0 0 0 0
## 1856 0 0 0 0 0 0 0
## D.P.spacegray
## 1214 0
## 1856 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "No module detected"
## [1] "Category: iPadmini"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 7 10007 Y iPadmini 0 0 0
## 57 10057 N iPadmini 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet
## 7 0 0 0 0 0 0 0
## 57 0 0 0 0 0 0 0
## D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini
## 7 0 0 0 0 0 0 0
## 57 0 0 0 0 0 0 0
## D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 7 0 0 0 0 0
## 57 0 0 0 0 0
## [1] "min distance(0.8919) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 93 10093 N iPadmini
## 2364 12375 <NA> iPadmini
## descr.my
## 93 *FREE* Same-Day Ship | 90-Day Warranty | 100% Functional, Includes All Major Accessories, Shows
## 2364 100% working condition, No icloud blocks, tablet is ready for new user. See item description for
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 93 0.0000000 0 0 0 0 0 0
## 2364 0.1734409 0 0 0 0 0 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 93 0 0 0 0 0 0.4882443 0
## 2364 0 0 0 0 0 0.3836205 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 93 0 0 0 0 0 0 0
## 2364 0 0 0 0 0 0 0
## D.P.spacegray
## 93 0
## 2364 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "No module detected"
## [1] "Category: iPadmini2"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 4 10004 N iPadmini2 0 0 0
## 6 10006 Y iPadmini2 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet D.T.minor
## 4 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
## D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini D.P.air D.P.black
## 4 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
## D.P.white D.P.gold D.P.spacegray
## 4 0 0 0
## 6 0 0 0
## [1] "min distance(0.9126) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 927 10930 N iPadmini2
## 2020 12031 <NA> iPadmini2
## descr.my
## 927 Flawless Condition(10/10) 100% functional with Flawless Retina Display. Unit is free of
## 2020 Good Condition(8point25/10), 100% functional with Flawless Retina Display. Unit has a dent on upper left
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 927 0.1867825 0 0 0.0000000 0 0.2791708 0.3178679
## 2020 0.1734409 0 0 0.2677597 0 0.2592300 0.0000000
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 927 0 0 0 0 0 0.4131298 0
## 2020 0 0 0 0 0 0.3836205 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 927 0 0 0 0 0 0 0
## 2020 0 0 0 0 0 0 0
## D.P.spacegray
## 927 0
## 2020 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "Category: iPadmini3"
## [1] "max distance(1.0000) pair:"
## UniqueID sold.fctr prdl.my.fctr descr.my D.T.condit D.T.use D.T.in.
## 8 10008 N iPadmini3 0 0 0
## 120 10120 N iPadmini3 0 0 0
## D.T.good D.T.screen D.T.with D.T.of D.T.mint D.T.or D.T.cosmet
## 8 0 0 0 0 0 0 0
## 120 0 0 0 0 0 0 0
## D.T.minor D.T.light D.T.X100 D.T.from D.T.hous D.P.http D.P.mini
## 8 0 0 0 0 0 0 0
## 120 0 0 0 0 0 0 0
## D.P.air D.P.black D.P.white D.P.gold D.P.spacegray
## 8 0 0 0 0 0
## 120 0 0 0 0 0
## [1] "min distance(0.9488) pair:"
## UniqueID sold.fctr prdl.my.fctr
## 1011 11014 N iPadmini3
## 1115 11121 N iPadmini3
## descr.my
## 1011 Brandnew IpadMini, still in plastic wrap and box provided by hospital with cords and new unopened
## 1115 Bought for one day and removed iPad plastic cover, never used. In original box with all accessories!
## D.T.condit D.T.use D.T.in. D.T.good D.T.screen D.T.with D.T.of
## 1011 0 0.0000000 0.2179833 0 0 0.302435 0
## 1115 0 0.2143913 0.1743867 0 0 0.241948 0
## D.T.mint D.T.or D.T.cosmet D.T.minor D.T.light D.T.X100 D.T.from
## 1011 0 0 0 0 0 0 0
## 1115 0 0 0 0 0 0 0
## D.T.hous D.P.http D.P.mini D.P.air D.P.black D.P.white D.P.gold
## 1011 0 0 1 0 0 0 0
## 1115 0 0 0 0 0 0 0
## D.P.spacegray
## 1011 0
## 1115 0
## Warning in max(vapply(evaled, length, integer(1))): no non-missing
## arguments to max; returning -Inf
## [1] "No module detected"
## Source: local data frame [19 x 5]
##
## prdl.my.fctr.clusterid N Y .entropy .knt
## (chr) (dbl) (dbl) (dbl) (dbl)
## 1 Unknown_1 92 62 0.6740508 154
## 2 Unknown_2 17 12 0.6782094 29
## 3 Unknown_3 13 8 0.6645284 21
## 4 iPad1_1 72 104 0.6765260 176
## 5 iPad1_2 15 12 0.6869616 27
## 6 iPad1_3 13 9 0.6765260 22
## 7 iPad2_1 139 147 0.6927559 286
## 8 iPad3_1 60 75 0.6869616 135
## 9 iPad3_2 13 5 0.5908422 18
## 10 iPad4_1 52 52 0.6931472 104
## 11 iPad4_2 16 12 0.6829081 28
## 12 iPad4_3 25 0 0.0000000 25
## 13 iPadAir2_1 100 71 0.6786969 171
## 14 iPadAir_1 86 60 0.6772057 146
## 15 iPadAir_2 16 18 0.6914161 34
## 16 iPadmini2_1 50 44 0.6911087 94
## 17 iPadmini2_2 8 5 0.6662784 13
## 18 iPadmini3_1 63 27 0.6108643 90
## 19 iPadmini_1 145 132 0.6920455 277
## [1] "glb_allobs_df$prdl.my.fctr$.clusterid Entropy: 0.6710 (98.3773 pct)"
# Last call for data modifications
#stop(here") # sav_allobs_df <- glb_allobs_df
# glb_allobs_df[(glb_allobs_df$PropR == 0.75) & (glb_allobs_df$State == "Hawaii"), "PropR.fctr"] <- "N"
# Re-partition
glb_trnobs_df <- subset(glb_allobs_df, .src == "Train")
glb_newobs_df <- subset(glb_allobs_df, .src == "Test")
glb_chunks_df <- myadd_chunk(glb_chunks_df, "partition.data.training", major.inc=TRUE)
## label step_major step_minor label_minor bgn
## 7 cluster.data 3 2 2 251.205
## 8 partition.data.training 4 0 0 298.964
## end elapsed
## 7 298.964 47.759
## 8 NA NA
4.0: partition data training#stop(here"); glb_to_sav()
if (all(is.na(glb_newobs_df[, glb_rsp_var]))) {
set.seed(glb_split_sample.seed)
OOB_size <- nrow(glb_newobs_df) * 1.1
if (is.null(glb_category_var)) {
require(caTools)
split <- sample.split(glb_trnobs_df[, glb_rsp_var_raw],
SplitRatio=OOB_size / nrow(glb_trnobs_df))
glb_OOBobs_df <- glb_trnobs_df[split ,]
glb_fitobs_df <- glb_trnobs_df[!split, ]
} else {
sample_vars <- c(glb_category_var, glb_rsp_var_raw)
rspvar_freq_df <- orderBy(reformulate(glb_rsp_var_raw),
mycreate_sqlxtab_df(glb_trnobs_df, glb_rsp_var_raw))
OOB_rspvar_size <-
1.0 * OOB_size * rspvar_freq_df$.n / sum(rspvar_freq_df$.n)
names(OOB_rspvar_size) <- as.character(rspvar_freq_df[, glb_rsp_var_raw])
newobs_freq_df <- orderBy(reformulate(glb_category_var),
mycreate_sqlxtab_df(glb_newobs_df, glb_category_var))
trnobs_freq_df <- orderBy(reformulate(glb_category_var),
mycreate_sqlxtab_df(glb_trnobs_df, glb_category_var))
ctgry_freq_df <- merge(newobs_freq_df, trnobs_freq_df,
by = glb_category_var,
all = TRUE, sort = TRUE,
suffixes = c(".tst", ".trn"))
ctgry_freq_df[is.na(ctgry_freq_df)] <- 0
obs_freq_df <- mycreate_xtab_df(glb_trnobs_df,
c(glb_category_var, glb_rsp_var_raw))
newobs_freq_df <- orderBy(reformulate(glb_category_var),
mycreate_sqlxtab_df(glb_newobs_df, glb_category_var))
names(newobs_freq_df) <- gsub(".n", ".n.tst", names(newobs_freq_df),
fixed = TRUE)
obs_freq_df <- merge(obs_freq_df, newobs_freq_df, all = TRUE)
strata_mtrx <- ceiling(
matrix(obs_freq_df$.n.tst * 1.0 / sum(obs_freq_df$.n.tst)) %*%
matrix(OOB_rspvar_size, nrow = 1))
dimnames(strata_mtrx)[[1]] <- obs_freq_df[, glb_category_var]
dimnames(strata_mtrx)[[2]] <- as.character(rspvar_freq_df[, glb_rsp_var_raw])
for (val in rspvar_freq_df[, glb_rsp_var_raw]) {
trn <- paste0(glb_rsp_var_raw, ".", as.character(val))
strata <- paste0(".strata.", as.character(val))
obs_freq_df[, strata] <- strata_mtrx[, as.character(val)]
if (length((ix <- which(obs_freq_df[, trn] <
2.0 * obs_freq_df[, strata]))) > 0)
# More obs in OOB compared to fit currently
obs_freq_df[ix, strata] <- floor(obs_freq_df[ix, trn] / 2.0)
if (length((ix <- which(obs_freq_df[, strata] == 0))) > 0)
obs_freq_df[ix, strata] <- 1
}
#print(colSums(obs_freq_df[, -1]))
# obs_freq_df <- expand.grid(
# glb_category_var = ctgry_freq_df[, glb_category_var],
# glb_rsp_var_raw = rspvar_freq_df[, glb_rsp_var_raw])
# names(obs_freq_df) <- sample_vars
# trnobs_freq_df <- orderBy(reformulate(sample_vars),
# mycreate_sqlxtab_df(glb_trnobs_df, sample_vars))
# names(trnobs_freq_df) <- gsub(".n", ".n.trn", names(trnobs_freq_df),
# fixed = TRUE)
# obs_freq_df <- merge(obs_freq_df, trnobs_freq_df, all = TRUE)
# newobs_freq_df <- orderBy(reformulate(glb_category_var),
# mycreate_sqlxtab_df(glb_newobs_df, glb_category_var))
# # Since glb_rsp_var_raw might be NA in newobs_df, repeat .n.Test across unique values of glb_rsp_var_raw to prep obs_freq_df
# newobs_rsp_freq_df <- data.frame()
# for (val in rspvar_freq_df[, glb_rsp_var_raw])
# newobs_rsp_freq_df <- rbind(newobs_rsp_freq_df,
# cbind(newobs_freq_df, data.frame(glb_rsp_var_raw = val)))
# obs_freq_df <- merge(obs_freq_df, newobs_freq_df, all = TRUE)
# obs_freq_df <- orderBy(reformulate(sample_vars), obs_freq_df)
#
# obs_freq_df$.n.strata <- ceiling(
# as.vector(matrix(ctgry_freq_df$.n.Tst * 1.0 /
# sum(ctgry_freq_df$.n.Tst)) %*%
# matrix(OOB_rspvar_size, nrow = 1)))
# obs_freq_df[obs_freq_df$.n.Strata == 0, ".n.Strata"] <- 1
#
# # Adjust OOB_strata_size (desired # of OOB obs) if > # of trn obs
# ix <- which(!is.na(trnobs_univ_df$.n) &
# (OOB_strata_size > trnobs_univ_df$.n))
# if (length(ix) > 0)
# OOB_strata_size[ix] <- trnobs_univ_df[ix, ".n"]
# # Adjust OOB_strata_size (desired # of OOB obs) if > # of (trn - OOB) obs
# ix <- which(!is.na(trnobs_univ_df$.n) &
# (OOB_strata_size * 2 > trnobs_univ_df$.n))
# if (length(ix) > 0)
# OOB_strata_size[ix] <- trnobs_univ_df[ix, ".n"]
OOB_strata_size <- as.vector(as.matrix(obs_freq_df[,
grepl("^\\.strata\\.", names(obs_freq_df))]))
tmp_trnobs_df <- orderBy(reformulate(c(glb_rsp_var_raw, glb_category_var)),
glb_trnobs_df)
require(sampling)
split_strata <- sampling::strata(tmp_trnobs_df,
stratanames = c(glb_rsp_var_raw, glb_category_var),
size = OOB_strata_size[!is.na(OOB_strata_size)],
method = "srswor")
glb_OOBobs_df <- getdata(tmp_trnobs_df, split_strata)[, names(glb_trnobs_df)]
glb_fitobs_df <- glb_trnobs_df[!glb_trnobs_df[, glb_id_var] %in%
glb_OOBobs_df[, glb_id_var], ]
}
} else {
print(sprintf("Newdata contains non-NA data for %s; setting OOB to Newdata",
glb_rsp_var))
glb_fitobs_df <- glb_trnobs_df; glb_OOBobs_df <- glb_newobs_df
}
## Loading required package: sampling
##
## Attaching package: 'sampling'
##
## The following objects are masked from 'package:survival':
##
## cluster, strata
##
## The following object is masked from 'package:caret':
##
## cluster
if (!is.null(glb_max_fitobs) && (nrow(glb_fitobs_df) > glb_max_fitobs)) {
warning("glb_fitobs_df restricted to glb_max_fitobs: ",
format(glb_max_fitobs, big.mark = ","))
org_fitobs_df <- glb_fitobs_df
glb_fitobs_df <-
org_fitobs_df[split <- sample.split(org_fitobs_df[, glb_rsp_var_raw],
SplitRatio = glb_max_fitobs), ]
org_fitobs_df <- NULL
}
glb_allobs_df$.lcn <- ""; glb_trnobs_df$.lcn <- "";
glb_allobs_df[glb_allobs_df[, glb_id_var] %in%
glb_fitobs_df[, glb_id_var], ".lcn"] <- "Fit"
glb_trnobs_df[glb_trnobs_df[, glb_id_var] %in%
glb_fitobs_df[, glb_id_var], ".lcn"] <- "Fit"
glb_allobs_df[glb_allobs_df[, glb_id_var] %in%
glb_OOBobs_df[, glb_id_var], ".lcn"] <- "OOB"
glb_trnobs_df[glb_trnobs_df[, glb_id_var] %in%
glb_OOBobs_df[, glb_id_var], ".lcn"] <- "OOB"
dsp_class_dstrb <- function(obs_df, location_var, partition_var) {
xtab_df <- mycreate_xtab_df(obs_df, c(location_var, partition_var))
rownames(xtab_df) <- xtab_df[, location_var]
xtab_df <- xtab_df[, -grepl(location_var, names(xtab_df))]
print(xtab_df)
print(xtab_df / rowSums(xtab_df, na.rm=TRUE))
}
# Ensure proper splits by glb_rsp_var_raw & user-specified feature for OOB vs. new
if (!is.null(glb_category_var)) {
if (glb_is_classification)
dsp_class_dstrb(glb_allobs_df, ".lcn", glb_rsp_var_raw)
newobs_ctgry_df <- mycreate_sqlxtab_df(subset(glb_allobs_df, .src == "Test"),
glb_category_var)
names(newobs_ctgry_df) <-
gsub(".n", ".n.Tst", names(newobs_ctgry_df), fixed = TRUE)
OOBobs_ctgry_df <- mycreate_sqlxtab_df(subset(glb_allobs_df, .lcn == "OOB"),
glb_category_var)
names(OOBobs_ctgry_df) <-
gsub(".n", ".n.OOB", names(OOBobs_ctgry_df), fixed = TRUE)
fitobs_ctgry_df <- mycreate_sqlxtab_df(subset(glb_allobs_df, .lcn == "Fit"),
glb_category_var)
names(fitobs_ctgry_df) <-
gsub(".n", ".n.Fit", names(fitobs_ctgry_df), fixed = TRUE)
# glb_ctgry_df <- merge(newobs_ctgry_df, OOBobs_ctgry_df, by=glb_category_var
# , all=TRUE, suffixes=c(".Tst", ".OOB"))
glb_ctgry_df <- merge(fitobs_ctgry_df, OOBobs_ctgry_df, by = glb_category_var
, all = TRUE)
glb_ctgry_df <- merge(glb_ctgry_df, newobs_ctgry_df, by = glb_category_var
, all = TRUE)
glb_ctgry_df$.freqRatio.Fit <-
glb_ctgry_df$.n.Fit / sum(glb_ctgry_df$.n.Fit, na.rm = TRUE)
glb_ctgry_df$.freqRatio.OOB <-
glb_ctgry_df$.n.OOB / sum(glb_ctgry_df$.n.OOB, na.rm = TRUE)
glb_ctgry_df$.freqRatio.Tst <-
glb_ctgry_df$.n.Tst / sum(glb_ctgry_df$.n.Tst, na.rm = TRUE)
print(orderBy(~-.freqRatio.Tst-.freqRatio.OOB-.freqRatio.Fit, glb_ctgry_df))
}
## sold.0 sold.1 sold.NA
## NA NA 798
## Fit 548 472 NA
## OOB 447 383 NA
## sold.0 sold.1 sold.NA
## NA NA 1
## Fit 0.5372549 0.4627451 NA
## OOB 0.5385542 0.4614458 NA
## prdl.my.fctr .n.Fit .n.OOB .n.Tst .freqRatio.Fit .freqRatio.OOB
## 3 iPad2 144 142 154 0.14117647 0.17108434
## 8 iPadmini 154 123 111 0.15098039 0.14819277
## 1 Unknown 108 96 92 0.10588235 0.11566265
## 2 iPad1 130 95 88 0.12745098 0.11445783
## 6 iPadAir 98 82 74 0.09607843 0.09879518
## 5 iPad4 84 73 68 0.08235294 0.08795181
## 7 iPadAir2 102 69 62 0.10000000 0.08313253
## 9 iPadmini2 54 53 56 0.05294118 0.06385542
## 4 iPad3 92 61 55 0.09019608 0.07349398
## 10 iPadmini3 54 36 38 0.05294118 0.04337349
## .freqRatio.Tst
## 3 0.19298246
## 8 0.13909774
## 1 0.11528822
## 2 0.11027569
## 6 0.09273183
## 5 0.08521303
## 7 0.07769424
## 9 0.07017544
## 4 0.06892231
## 10 0.04761905
print("glb_allobs_df: "); print(dim(glb_allobs_df))
## [1] "glb_allobs_df: "
## [1] 2648 105
print("glb_trnobs_df: "); print(dim(glb_trnobs_df))
## [1] "glb_trnobs_df: "
## [1] 1850 105
print("glb_fitobs_df: "); print(dim(glb_fitobs_df))
## [1] "glb_fitobs_df: "
## [1] 1020 104
print("glb_OOBobs_df: "); print(dim(glb_OOBobs_df))
## [1] "glb_OOBobs_df: "
## [1] 830 104
print("glb_newobs_df: "); print(dim(glb_newobs_df))
## [1] "glb_newobs_df: "
## [1] 798 104
# # Does not handle NULL or length(glb_id_var) > 1
if (glb_save_envir)
save(glb_allobs_df, #glb_trnobs_df, glb_fitobs_df, glb_OOBobs_df, glb_newobs_df,
file=paste0(glb_out_pfx, "blddfs_dsk.RData"))
# load(paste0(glb_out_pfx, "blddfs_dsk.RData"))
rm(split)
## Warning in rm(split): object 'split' not found
glb_chunks_df <- myadd_chunk(glb_chunks_df, "select.features", major.inc=TRUE)
## label step_major step_minor label_minor bgn
## 8 partition.data.training 4 0 0 298.964
## 9 select.features 5 0 0 299.849
## end elapsed
## 8 299.849 0.885
## 9 NA NA
5.0: select features#stop(here"); glb_to_sav(); glb_allobs_df <- sav_allobs_df
print(glb_feats_df <- myselect_features(entity_df=glb_trnobs_df,
exclude_vars_as_features=glbFeatsExclude,
rsp_var=glb_rsp_var))
## Warning in cor(data.matrix(entity_df[, sel_feats]), y =
## as.numeric(entity_df[, : the standard deviation is zero
## id cor.y
## sold sold 1.000000000
## biddable biddable 0.549242842
## sprice.root2 sprice.root2 -0.511275385
## sprice.log10 sprice.log10 -0.469398937
## startprice startprice -0.458981936
## startprice.log10.predict startprice.log10.predict -0.408722051
## sprice.d20nexp sprice.d20nexp 0.397995133
## spdiff.cut.fctr spdiff.cut.fctr 0.290604966
## sprice.predict.diff sprice.predict.diff 0.271458109
## UniqueID UniqueID -0.190626150
## condition.fctr condition.fctr -0.155283820
## startprice.dgt1.is9 startprice.dgt1.is9 -0.138476687
## D.T.hous D.T.hous -0.129274878
## D.chrs.pnct05.n.log D.chrs.pnct05.n.log -0.120173065
## D.T.X100 D.T.X100 -0.111398502
## D.chrs.pnct06.n.log D.chrs.pnct06.n.log -0.095888068
## D.T.cosmet D.T.cosmet -0.088480863
## D.dgts.n.log D.dgts.n.log -0.082741631
## .clusterid .clusterid -0.080966421
## .clusterid.fctr .clusterid.fctr -0.080966421
## D.chrs.pnct14.n.log D.chrs.pnct14.n.log -0.075911474
## D.terms.post.stop.n D.terms.post.stop.n -0.075731613
## D.terms.post.stem.n D.terms.post.stem.n -0.074990216
## cellular.fctr cellular.fctr -0.073025939
## D.T.in. D.T.in. -0.071653919
## D.T.with D.T.with -0.066087601
## D.terms.post.stop.n.log D.terms.post.stop.n.log -0.062526435
## D.terms.post.stem.n.log D.terms.post.stem.n.log -0.062220631
## D.wrds.unq.n.log D.wrds.unq.n.log -0.062220631
## D.chrs.pnct09.n.log D.chrs.pnct09.n.log -0.061919863
## D.ratio.wrds.stop.n.wrds.n D.ratio.wrds.stop.n.wrds.n 0.059547328
## carrier.fctr carrier.fctr -0.058701911
## D.T.mint D.T.mint -0.055691207
## D.wrds.n.log D.wrds.n.log -0.055678363
## D.chrs.n.log D.chrs.n.log -0.055576665
## D.chrs.uppr.n.log D.chrs.uppr.n.log -0.054491610
## prdl.my.fctr prdl.my.fctr -0.054151937
## D.chrs.pnct28.n.log D.chrs.pnct28.n.log -0.052538378
## D.T.of D.T.of 0.052259530
## D.chrs.pnct12.n.log D.chrs.pnct12.n.log -0.049684867
## D.chrs.pnct15.n.log D.chrs.pnct15.n.log 0.048611857
## startprice.dcm2.is9 startprice.dcm2.is9 0.047716416
## D.weight.post.stem.sum D.weight.post.stem.sum -0.047105442
## D.weight.sum D.weight.sum -0.047105442
## D.weight.post.stop.sum D.weight.post.stop.sum -0.045009208
## color.fctr color.fctr -0.044231522
## D.terms.n.stem.stop.Ratio D.terms.n.stem.stop.Ratio 0.043562113
## startprice.dgt3.is9 startprice.dgt3.is9 -0.043150483
## D.T.minor D.T.minor -0.042692360
## D.T.screen D.T.screen 0.040605274
## startprice.dgt2.is9 startprice.dgt2.is9 -0.039616843
## D.chrs.pnct08.n.log D.chrs.pnct08.n.log -0.039606364
## D.T.condit D.T.condit -0.033248924
## D.T.light D.T.light -0.032814746
## D.chrs.pnct13.n.log D.chrs.pnct13.n.log -0.032095777
## D.T.from D.T.from -0.030653359
## D.chrs.pnct17.n.log D.chrs.pnct17.n.log 0.025087653
## D.chrs.pnct07.n.log D.chrs.pnct07.n.log 0.024330390
## D.chrs.pnct10.n.log D.chrs.pnct10.n.log -0.024107007
## D.T.or D.T.or -0.022614420
## D.chrs.pnct03.n.log D.chrs.pnct03.n.log -0.021557732
## D.chrs.pnct18.n.log D.chrs.pnct18.n.log -0.021557732
## D.P.gold D.P.gold -0.021557732
## D.chrs.pnct11.n.log D.chrs.pnct11.n.log -0.020186238
## D.P.white D.P.white 0.018597281
## D.T.good D.T.good 0.016394675
## D.chrs.pnct16.n.log D.chrs.pnct16.n.log 0.015642041
## storage.fctr storage.fctr -0.014549906
## D.P.air D.P.air -0.009203749
## startprice.dcm1.is9 startprice.dcm1.is9 -0.008364097
## D.P.mini D.P.mini -0.006894908
## D.chrs.pnct01.n.log D.chrs.pnct01.n.log 0.004291712
## D.wrds.stop.n.log D.wrds.stop.n.log 0.003851183
## D.P.spacegray D.P.spacegray 0.003532788
## D.T.use D.T.use 0.003025811
## D.weight.sum.stem.stop.Ratio D.weight.sum.stem.stop.Ratio 0.002381527
## .rnorm .rnorm -0.001273806
## D.P.black D.P.black -0.001181544
## D.ratio.weight.sum.wrds.n D.ratio.weight.sum.wrds.n -0.001080251
## D.chrs.pnct02.n.log D.chrs.pnct02.n.log NA
## D.chrs.pnct04.n.log D.chrs.pnct04.n.log NA
## D.chrs.pnct19.n.log D.chrs.pnct19.n.log NA
## D.chrs.pnct20.n.log D.chrs.pnct20.n.log NA
## D.chrs.pnct21.n.log D.chrs.pnct21.n.log NA
## D.chrs.pnct22.n.log D.chrs.pnct22.n.log NA
## D.chrs.pnct23.n.log D.chrs.pnct23.n.log NA
## D.chrs.pnct24.n.log D.chrs.pnct24.n.log NA
## D.chrs.pnct25.n.log D.chrs.pnct25.n.log NA
## D.chrs.pnct26.n.log D.chrs.pnct26.n.log NA
## D.chrs.pnct27.n.log D.chrs.pnct27.n.log NA
## D.chrs.pnct29.n.log D.chrs.pnct29.n.log NA
## D.chrs.pnct30.n.log D.chrs.pnct30.n.log NA
## D.P.http D.P.http NA
## exclude.as.feat cor.y.abs
## sold 1 1.000000000
## biddable 0 0.549242842
## sprice.root2 0 0.511275385
## sprice.log10 0 0.469398937
## startprice 1 0.458981936
## startprice.log10.predict 1 0.408722051
## sprice.d20nexp 0 0.397995133
## spdiff.cut.fctr 0 0.290604966
## sprice.predict.diff 1 0.271458109
## UniqueID 1 0.190626150
## condition.fctr 0 0.155283820
## startprice.dgt1.is9 0 0.138476687
## D.T.hous 0 0.129274878
## D.chrs.pnct05.n.log 0 0.120173065
## D.T.X100 0 0.111398502
## D.chrs.pnct06.n.log 0 0.095888068
## D.T.cosmet 0 0.088480863
## D.dgts.n.log 0 0.082741631
## .clusterid 1 0.080966421
## .clusterid.fctr 0 0.080966421
## D.chrs.pnct14.n.log 0 0.075911474
## D.terms.post.stop.n 1 0.075731613
## D.terms.post.stem.n 1 0.074990216
## cellular.fctr 0 0.073025939
## D.T.in. 0 0.071653919
## D.T.with 0 0.066087601
## D.terms.post.stop.n.log 0 0.062526435
## D.terms.post.stem.n.log 0 0.062220631
## D.wrds.unq.n.log 0 0.062220631
## D.chrs.pnct09.n.log 0 0.061919863
## D.ratio.wrds.stop.n.wrds.n 0 0.059547328
## carrier.fctr 0 0.058701911
## D.T.mint 0 0.055691207
## D.wrds.n.log 0 0.055678363
## D.chrs.n.log 0 0.055576665
## D.chrs.uppr.n.log 0 0.054491610
## prdl.my.fctr 0 0.054151937
## D.chrs.pnct28.n.log 0 0.052538378
## D.T.of 0 0.052259530
## D.chrs.pnct12.n.log 0 0.049684867
## D.chrs.pnct15.n.log 0 0.048611857
## startprice.dcm2.is9 0 0.047716416
## D.weight.post.stem.sum 0 0.047105442
## D.weight.sum 0 0.047105442
## D.weight.post.stop.sum 0 0.045009208
## color.fctr 0 0.044231522
## D.terms.n.stem.stop.Ratio 0 0.043562113
## startprice.dgt3.is9 0 0.043150483
## D.T.minor 0 0.042692360
## D.T.screen 0 0.040605274
## startprice.dgt2.is9 0 0.039616843
## D.chrs.pnct08.n.log 0 0.039606364
## D.T.condit 0 0.033248924
## D.T.light 0 0.032814746
## D.chrs.pnct13.n.log 0 0.032095777
## D.T.from 0 0.030653359
## D.chrs.pnct17.n.log 0 0.025087653
## D.chrs.pnct07.n.log 0 0.024330390
## D.chrs.pnct10.n.log 0 0.024107007
## D.T.or 0 0.022614420
## D.chrs.pnct03.n.log 0 0.021557732
## D.chrs.pnct18.n.log 0 0.021557732
## D.P.gold 0 0.021557732
## D.chrs.pnct11.n.log 0 0.020186238
## D.P.white 0 0.018597281
## D.T.good 0 0.016394675
## D.chrs.pnct16.n.log 0 0.015642041
## storage.fctr 0 0.014549906
## D.P.air 0 0.009203749
## startprice.dcm1.is9 0 0.008364097
## D.P.mini 0 0.006894908
## D.chrs.pnct01.n.log 0 0.004291712
## D.wrds.stop.n.log 0 0.003851183
## D.P.spacegray 0 0.003532788
## D.T.use 0 0.003025811
## D.weight.sum.stem.stop.Ratio 0 0.002381527
## .rnorm 0 0.001273806
## D.P.black 0 0.001181544
## D.ratio.weight.sum.wrds.n 0 0.001080251
## D.chrs.pnct02.n.log 0 NA
## D.chrs.pnct04.n.log 0 NA
## D.chrs.pnct19.n.log 0 NA
## D.chrs.pnct20.n.log 0 NA
## D.chrs.pnct21.n.log 0 NA
## D.chrs.pnct22.n.log 0 NA
## D.chrs.pnct23.n.log 0 NA
## D.chrs.pnct24.n.log 0 NA
## D.chrs.pnct25.n.log 0 NA
## D.chrs.pnct26.n.log 0 NA
## D.chrs.pnct27.n.log 0 NA
## D.chrs.pnct29.n.log 0 NA
## D.chrs.pnct30.n.log 0 NA
## D.P.http 0 NA
print(glb_feats_df <- orderBy(~-cor.y,
myfind_cor_features(feats_df=glb_feats_df, obs_df=glb_trnobs_df, rsp_var=glb_rsp_var,
nzv.freqCut=glb_nzv_freqCut, nzv.uniqueCut=glb_nzv_uniqueCut)))
## [1] "cor(D.terms.post.stem.n.log, D.wrds.unq.n.log)=1.0000"
## [1] "cor(sold.fctr, D.terms.post.stem.n.log)=-0.0622"
## [1] "cor(sold.fctr, D.wrds.unq.n.log)=-0.0622"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.wrds.unq.n.log as highly correlated with
## D.terms.post.stem.n.log
## [1] "cor(D.weight.post.stem.sum, D.weight.sum)=1.0000"
## [1] "cor(sold.fctr, D.weight.post.stem.sum)=-0.0471"
## [1] "cor(sold.fctr, D.weight.sum)=-0.0471"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.weight.sum as highly correlated with
## D.weight.post.stem.sum
## [1] "cor(D.terms.post.stem.n.log, D.terms.post.stop.n.log)=0.9999"
## [1] "cor(sold.fctr, D.terms.post.stem.n.log)=-0.0622"
## [1] "cor(sold.fctr, D.terms.post.stop.n.log)=-0.0625"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.terms.post.stem.n.log as highly correlated
## with D.terms.post.stop.n.log
## [1] "cor(D.chrs.n.log, D.chrs.uppr.n.log)=0.9996"
## [1] "cor(sold.fctr, D.chrs.n.log)=-0.0556"
## [1] "cor(sold.fctr, D.chrs.uppr.n.log)=-0.0545"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.chrs.uppr.n.log as highly correlated with
## D.chrs.n.log
## [1] "cor(D.weight.post.stem.sum, D.weight.post.stop.sum)=0.9981"
## [1] "cor(sold.fctr, D.weight.post.stem.sum)=-0.0471"
## [1] "cor(sold.fctr, D.weight.post.stop.sum)=-0.0450"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.weight.post.stop.sum as highly correlated
## with D.weight.post.stem.sum
## [1] "cor(D.terms.post.stop.n.log, D.wrds.n.log)=0.9956"
## [1] "cor(sold.fctr, D.terms.post.stop.n.log)=-0.0625"
## [1] "cor(sold.fctr, D.wrds.n.log)=-0.0557"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.wrds.n.log as highly correlated with
## D.terms.post.stop.n.log
## [1] "cor(D.chrs.n.log, D.terms.post.stop.n.log)=0.9889"
## [1] "cor(sold.fctr, D.chrs.n.log)=-0.0556"
## [1] "cor(sold.fctr, D.terms.post.stop.n.log)=-0.0625"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.chrs.n.log as highly correlated with
## D.terms.post.stop.n.log
## [1] "cor(D.ratio.wrds.stop.n.wrds.n, D.terms.post.stop.n.log)=-0.9745"
## [1] "cor(sold.fctr, D.ratio.wrds.stop.n.wrds.n)=0.0595"
## [1] "cor(sold.fctr, D.terms.post.stop.n.log)=-0.0625"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.ratio.wrds.stop.n.wrds.n as highly correlated
## with D.terms.post.stop.n.log
## [1] "cor(sprice.d20nexp, sprice.log10)=-0.9316"
## [1] "cor(sold.fctr, sprice.d20nexp)=0.3980"
## [1] "cor(sold.fctr, sprice.log10)=-0.4694"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified sprice.d20nexp as highly correlated with
## sprice.log10
## [1] "cor(D.terms.post.stop.n.log, D.weight.post.stem.sum)=0.9316"
## [1] "cor(sold.fctr, D.terms.post.stop.n.log)=-0.0625"
## [1] "cor(sold.fctr, D.weight.post.stem.sum)=-0.0471"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.weight.post.stem.sum as highly correlated
## with D.terms.post.stop.n.log
## [1] "cor(D.T.X100, D.chrs.pnct05.n.log)=0.8813"
## [1] "cor(sold.fctr, D.T.X100)=-0.1114"
## [1] "cor(sold.fctr, D.chrs.pnct05.n.log)=-0.1202"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df
## = glb_trnobs_df, : Identified D.T.X100 as highly correlated with
## D.chrs.pnct05.n.log
## [1] "cor(sprice.log10, sprice.root2)=0.8701"
## [1] "cor(sold.fctr, sprice.log10)=-0.4694"
## [1] "cor(sold.fctr, sprice.root2)=-0.5113"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified sprice.log10 as highly correlated with
## sprice.root2
## [1] "cor(startprice.dcm1.is9, startprice.dcm2.is9)=0.8054"
## [1] "cor(sold.fctr, startprice.dcm1.is9)=-0.0084"
## [1] "cor(sold.fctr, startprice.dcm2.is9)=0.0477"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified startprice.dcm1.is9 as highly correlated with
## startprice.dcm2.is9
## [1] "cor(D.chrs.pnct13.n.log, D.terms.post.stop.n.log)=0.7218"
## [1] "cor(sold.fctr, D.chrs.pnct13.n.log)=-0.0321"
## [1] "cor(sold.fctr, D.terms.post.stop.n.log)=-0.0625"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified D.chrs.pnct13.n.log as highly correlated with
## D.terms.post.stop.n.log
## [1] "cor(carrier.fctr, cellular.fctr)=0.7131"
## [1] "cor(sold.fctr, carrier.fctr)=-0.0587"
## [1] "cor(sold.fctr, cellular.fctr)=-0.0730"
## Warning in myfind_cor_features(feats_df = glb_feats_df, obs_df =
## glb_trnobs_df, : Identified carrier.fctr as highly correlated with
## cellular.fctr
## id cor.y
## sold sold 1.000000000
## biddable biddable 0.549242842
## sprice.d20nexp sprice.d20nexp 0.397995133
## spdiff.cut.fctr spdiff.cut.fctr 0.290604966
## sprice.predict.diff sprice.predict.diff 0.271458109
## D.ratio.wrds.stop.n.wrds.n D.ratio.wrds.stop.n.wrds.n 0.059547328
## D.T.of D.T.of 0.052259530
## D.chrs.pnct15.n.log D.chrs.pnct15.n.log 0.048611857
## startprice.dcm2.is9 startprice.dcm2.is9 0.047716416
## D.terms.n.stem.stop.Ratio D.terms.n.stem.stop.Ratio 0.043562113
## D.T.screen D.T.screen 0.040605274
## D.chrs.pnct17.n.log D.chrs.pnct17.n.log 0.025087653
## D.chrs.pnct07.n.log D.chrs.pnct07.n.log 0.024330390
## D.P.white D.P.white 0.018597281
## D.T.good D.T.good 0.016394675
## D.chrs.pnct16.n.log D.chrs.pnct16.n.log 0.015642041
## D.chrs.pnct01.n.log D.chrs.pnct01.n.log 0.004291712
## D.wrds.stop.n.log D.wrds.stop.n.log 0.003851183
## D.P.spacegray D.P.spacegray 0.003532788
## D.T.use D.T.use 0.003025811
## D.weight.sum.stem.stop.Ratio D.weight.sum.stem.stop.Ratio 0.002381527
## D.ratio.weight.sum.wrds.n D.ratio.weight.sum.wrds.n -0.001080251
## D.P.black D.P.black -0.001181544
## .rnorm .rnorm -0.001273806
## D.P.mini D.P.mini -0.006894908
## startprice.dcm1.is9 startprice.dcm1.is9 -0.008364097
## D.P.air D.P.air -0.009203749
## storage.fctr storage.fctr -0.014549906
## D.chrs.pnct11.n.log D.chrs.pnct11.n.log -0.020186238
## D.P.gold D.P.gold -0.021557732
## D.chrs.pnct03.n.log D.chrs.pnct03.n.log -0.021557732
## D.chrs.pnct18.n.log D.chrs.pnct18.n.log -0.021557732
## D.T.or D.T.or -0.022614420
## D.chrs.pnct10.n.log D.chrs.pnct10.n.log -0.024107007
## D.T.from D.T.from -0.030653359
## D.chrs.pnct13.n.log D.chrs.pnct13.n.log -0.032095777
## D.T.light D.T.light -0.032814746
## D.T.condit D.T.condit -0.033248924
## D.chrs.pnct08.n.log D.chrs.pnct08.n.log -0.039606364
## startprice.dgt2.is9 startprice.dgt2.is9 -0.039616843
## D.T.minor D.T.minor -0.042692360
## startprice.dgt3.is9 startprice.dgt3.is9 -0.043150483
## color.fctr color.fctr -0.044231522
## D.weight.post.stop.sum D.weight.post.stop.sum -0.045009208
## D.weight.post.stem.sum D.weight.post.stem.sum -0.047105442
## D.weight.sum D.weight.sum -0.047105442
## D.chrs.pnct12.n.log D.chrs.pnct12.n.log -0.049684867
## D.chrs.pnct28.n.log D.chrs.pnct28.n.log -0.052538378
## prdl.my.fctr prdl.my.fctr -0.054151937
## D.chrs.uppr.n.log D.chrs.uppr.n.log -0.054491610
## D.chrs.n.log D.chrs.n.log -0.055576665
## D.wrds.n.log D.wrds.n.log -0.055678363
## D.T.mint D.T.mint -0.055691207
## carrier.fctr carrier.fctr -0.058701911
## D.chrs.pnct09.n.log D.chrs.pnct09.n.log -0.061919863
## D.terms.post.stem.n.log D.terms.post.stem.n.log -0.062220631
## D.wrds.unq.n.log D.wrds.unq.n.log -0.062220631
## D.terms.post.stop.n.log D.terms.post.stop.n.log -0.062526435
## D.T.with D.T.with -0.066087601
## D.T.in. D.T.in. -0.071653919
## cellular.fctr cellular.fctr -0.073025939
## D.terms.post.stem.n D.terms.post.stem.n -0.074990216
## D.terms.post.stop.n D.terms.post.stop.n -0.075731613
## D.chrs.pnct14.n.log D.chrs.pnct14.n.log -0.075911474
## .clusterid .clusterid -0.080966421
## .clusterid.fctr .clusterid.fctr -0.080966421
## D.dgts.n.log D.dgts.n.log -0.082741631
## D.T.cosmet D.T.cosmet -0.088480863
## D.chrs.pnct06.n.log D.chrs.pnct06.n.log -0.095888068
## D.T.X100 D.T.X100 -0.111398502
## D.chrs.pnct05.n.log D.chrs.pnct05.n.log -0.120173065
## D.T.hous D.T.hous -0.129274878
## startprice.dgt1.is9 startprice.dgt1.is9 -0.138476687
## condition.fctr condition.fctr -0.155283820
## UniqueID UniqueID -0.190626150
## startprice.log10.predict startprice.log10.predict -0.408722051
## startprice startprice -0.458981936
## sprice.log10 sprice.log10 -0.469398937
## sprice.root2 sprice.root2 -0.511275385
## D.P.http D.P.http NA
## D.chrs.pnct02.n.log D.chrs.pnct02.n.log NA
## D.chrs.pnct04.n.log D.chrs.pnct04.n.log NA
## D.chrs.pnct19.n.log D.chrs.pnct19.n.log NA
## D.chrs.pnct20.n.log D.chrs.pnct20.n.log NA
## D.chrs.pnct21.n.log D.chrs.pnct21.n.log NA
## D.chrs.pnct22.n.log D.chrs.pnct22.n.log NA
## D.chrs.pnct23.n.log D.chrs.pnct23.n.log NA
## D.chrs.pnct24.n.log D.chrs.pnct24.n.log NA
## D.chrs.pnct25.n.log D.chrs.pnct25.n.log NA
## D.chrs.pnct26.n.log D.chrs.pnct26.n.log NA
## D.chrs.pnct27.n.log D.chrs.pnct27.n.log NA
## D.chrs.pnct29.n.log D.chrs.pnct29.n.log NA
## D.chrs.pnct30.n.log D.chrs.pnct30.n.log NA
## exclude.as.feat cor.y.abs
## sold 1 1.000000000
## biddable 0 0.549242842
## sprice.d20nexp 0 0.397995133
## spdiff.cut.fctr 0 0.290604966
## sprice.predict.diff 1 0.271458109
## D.ratio.wrds.stop.n.wrds.n 0 0.059547328
## D.T.of 0 0.052259530
## D.chrs.pnct15.n.log 0 0.048611857
## startprice.dcm2.is9 0 0.047716416
## D.terms.n.stem.stop.Ratio 0 0.043562113
## D.T.screen 0 0.040605274
## D.chrs.pnct17.n.log 0 0.025087653
## D.chrs.pnct07.n.log 0 0.024330390
## D.P.white 0 0.018597281
## D.T.good 0 0.016394675
## D.chrs.pnct16.n.log 0 0.015642041
## D.chrs.pnct01.n.log 0 0.004291712
## D.wrds.stop.n.log 0 0.003851183
## D.P.spacegray 0 0.003532788
## D.T.use 0 0.003025811
## D.weight.sum.stem.stop.Ratio 0 0.002381527
## D.ratio.weight.sum.wrds.n 0 0.001080251
## D.P.black 0 0.001181544
## .rnorm 0 0.001273806
## D.P.mini 0 0.006894908
## startprice.dcm1.is9 0 0.008364097
## D.P.air 0 0.009203749
## storage.fctr 0 0.014549906
## D.chrs.pnct11.n.log 0 0.020186238
## D.P.gold 0 0.021557732
## D.chrs.pnct03.n.log 0 0.021557732
## D.chrs.pnct18.n.log 0 0.021557732
## D.T.or 0 0.022614420
## D.chrs.pnct10.n.log 0 0.024107007
## D.T.from 0 0.030653359
## D.chrs.pnct13.n.log 0 0.032095777
## D.T.light 0 0.032814746
## D.T.condit 0 0.033248924
## D.chrs.pnct08.n.log 0 0.039606364
## startprice.dgt2.is9 0 0.039616843
## D.T.minor 0 0.042692360
## startprice.dgt3.is9 0 0.043150483
## color.fctr 0 0.044231522
## D.weight.post.stop.sum 0 0.045009208
## D.weight.post.stem.sum 0 0.047105442
## D.weight.sum 0 0.047105442
## D.chrs.pnct12.n.log 0 0.049684867
## D.chrs.pnct28.n.log 0 0.052538378
## prdl.my.fctr 0 0.054151937
## D.chrs.uppr.n.log 0 0.054491610
## D.chrs.n.log 0 0.055576665
## D.wrds.n.log 0 0.055678363
## D.T.mint 0 0.055691207
## carrier.fctr 0 0.058701911
## D.chrs.pnct09.n.log 0 0.061919863
## D.terms.post.stem.n.log 0 0.062220631
## D.wrds.unq.n.log 0 0.062220631
## D.terms.post.stop.n.log 0 0.062526435
## D.T.with 0 0.066087601
## D.T.in. 0 0.071653919
## cellular.fctr 0 0.073025939
## D.terms.post.stem.n 1 0.074990216
## D.terms.post.stop.n 1 0.075731613
## D.chrs.pnct14.n.log 0 0.075911474
## .clusterid 1 0.080966421
## .clusterid.fctr 0 0.080966421
## D.dgts.n.log 0 0.082741631
## D.T.cosmet 0 0.088480863
## D.chrs.pnct06.n.log 0 0.095888068
## D.T.X100 0 0.111398502
## D.chrs.pnct05.n.log 0 0.120173065
## D.T.hous 0 0.129274878
## startprice.dgt1.is9 0 0.138476687
## condition.fctr 0 0.155283820
## UniqueID 1 0.190626150
## startprice.log10.predict 1 0.408722051
## startprice 1 0.458981936
## sprice.log10 0 0.469398937
## sprice.root2 0 0.511275385
## D.P.http 0 NA
## D.chrs.pnct02.n.log 0 NA
## D.chrs.pnct04.n.log 0 NA
## D.chrs.pnct19.n.log 0 NA
## D.chrs.pnct20.n.log 0 NA
## D.chrs.pnct21.n.log 0 NA
## D.chrs.pnct22.n.log 0 NA
## D.chrs.pnct23.n.log 0 NA
## D.chrs.pnct24.n.log 0 NA
## D.chrs.pnct25.n.log 0 NA
## D.chrs.pnct26.n.log 0 NA
## D.chrs.pnct27.n.log 0 NA
## D.chrs.pnct29.n.log 0 NA
## D.chrs.pnct30.n.log 0 NA
## cor.high.X freqRatio
## sold <NA> 1.163743
## biddable <NA> 1.215569
## sprice.d20nexp sprice.log10 2.807692
## spdiff.cut.fctr <NA> 1.668605
## sprice.predict.diff <NA> 1.000000
## D.ratio.wrds.stop.n.wrds.n D.terms.post.stop.n.log 18.067797
## D.T.of <NA> 145.000000
## D.chrs.pnct15.n.log <NA> 152.666667
## startprice.dcm2.is9 <NA> 2.195164
## D.terms.n.stem.stop.Ratio <NA> 85.142857
## D.T.screen <NA> 70.916667
## D.chrs.pnct17.n.log <NA> 1849.000000
## D.chrs.pnct07.n.log <NA> 107.529412
## D.P.white <NA> 230.125000
## D.T.good <NA> 95.166667
## D.chrs.pnct16.n.log <NA> 263.142857
## D.chrs.pnct01.n.log <NA> 52.705882
## D.wrds.stop.n.log <NA> 8.732484
## D.P.spacegray <NA> 461.500000
## D.T.use <NA> 86.631579
## D.weight.sum.stem.stop.Ratio <NA> 64.470588
## D.ratio.weight.sum.wrds.n <NA> 62.705882
## D.P.black <NA> 167.181818
## .rnorm <NA> 1.000000
## D.P.mini <NA> 96.315789
## startprice.dcm1.is9 startprice.dcm2.is9 1.616690
## D.P.air <NA> 122.266667
## storage.fctr <NA> 2.750742
## D.chrs.pnct11.n.log <NA> 9.382353
## D.P.gold <NA> 1849.000000
## D.chrs.pnct03.n.log <NA> 1849.000000
## D.chrs.pnct18.n.log <NA> 1849.000000
## D.T.or <NA> 87.950000
## D.chrs.pnct10.n.log <NA> 307.166667
## D.T.from <NA> 95.315789
## D.chrs.pnct13.n.log D.terms.post.stop.n.log 5.272374
## D.T.light <NA> 99.277778
## D.T.condit <NA> 36.829268
## D.chrs.pnct08.n.log <NA> 69.230769
## startprice.dgt2.is9 <NA> 6.905983
## D.T.minor <NA> 92.526316
## startprice.dgt3.is9 <NA> 461.500000
## color.fctr <NA> 1.592342
## D.weight.post.stop.sum D.weight.post.stem.sum 62.705882
## D.weight.post.stem.sum D.terms.post.stop.n.log 62.705882
## D.weight.sum D.weight.post.stem.sum 62.705882
## D.chrs.pnct12.n.log <NA> 28.467742
## D.chrs.pnct28.n.log <NA> 461.000000
## prdl.my.fctr <NA> 1.032491
## D.chrs.uppr.n.log D.chrs.n.log 15.661765
## D.chrs.n.log D.terms.post.stop.n.log 13.455696
## D.wrds.n.log D.terms.post.stop.n.log 11.430108
## D.T.mint <NA> 94.894737
## carrier.fctr cellular.fctr 3.184971
## D.chrs.pnct09.n.log <NA> 306.833333
## D.terms.post.stem.n.log D.terms.post.stop.n.log 11.714286
## D.wrds.unq.n.log D.terms.post.stem.n.log 11.714286
## D.terms.post.stop.n.log <NA> 13.325000
## D.T.with <NA> 46.888889
## D.T.in. <NA> 33.521739
## cellular.fctr <NA> 2.103053
## D.terms.post.stem.n <NA> 11.714286
## D.terms.post.stop.n <NA> 13.325000
## D.chrs.pnct14.n.log <NA> 35.176471
## .clusterid <NA> 10.959732
## .clusterid.fctr <NA> 10.959732
## D.dgts.n.log <NA> 34.340000
## D.T.cosmet <NA> 88.400000
## D.chrs.pnct06.n.log <NA> 60.466667
## D.T.X100 D.chrs.pnct05.n.log 180.500000
## D.chrs.pnct05.n.log <NA> 39.217391
## D.T.hous <NA> 81.681818
## startprice.dgt1.is9 <NA> 2.042763
## condition.fctr <NA> 4.010453
## UniqueID <NA> 1.000000
## startprice.log10.predict <NA> 1.230769
## startprice <NA> 2.807692
## sprice.log10 sprice.root2 2.807692
## sprice.root2 <NA> 2.807692
## D.P.http <NA> 0.000000
## D.chrs.pnct02.n.log <NA> 0.000000
## D.chrs.pnct04.n.log <NA> 0.000000
## D.chrs.pnct19.n.log <NA> 0.000000
## D.chrs.pnct20.n.log <NA> 0.000000
## D.chrs.pnct21.n.log <NA> 0.000000
## D.chrs.pnct22.n.log <NA> 0.000000
## D.chrs.pnct23.n.log <NA> 0.000000
## D.chrs.pnct24.n.log <NA> 0.000000
## D.chrs.pnct25.n.log <NA> 0.000000
## D.chrs.pnct26.n.log <NA> 0.000000
## D.chrs.pnct27.n.log <NA> 0.000000
## D.chrs.pnct29.n.log <NA> 0.000000
## D.chrs.pnct30.n.log <NA> 0.000000
## percentUnique zeroVar nzv is.cor.y.abs.low
## sold 0.10810811 FALSE FALSE FALSE
## biddable 0.10810811 FALSE FALSE FALSE
## sprice.d20nexp 30.21621622 FALSE FALSE FALSE
## spdiff.cut.fctr 0.43243243 FALSE FALSE FALSE
## sprice.predict.diff 96.10810811 FALSE FALSE FALSE
## D.ratio.wrds.stop.n.wrds.n 4.27027027 FALSE FALSE FALSE
## D.T.of 1.13513514 FALSE TRUE FALSE
## D.chrs.pnct15.n.log 0.16216216 FALSE TRUE FALSE
## startprice.dcm2.is9 0.10810811 FALSE FALSE FALSE
## D.terms.n.stem.stop.Ratio 0.64864865 FALSE TRUE FALSE
## D.T.screen 1.13513514 FALSE TRUE FALSE
## D.chrs.pnct17.n.log 0.10810811 FALSE TRUE FALSE
## D.chrs.pnct07.n.log 0.16216216 FALSE TRUE FALSE
## D.P.white 0.16216216 FALSE TRUE FALSE
## D.T.good 1.18918919 FALSE TRUE FALSE
## D.chrs.pnct16.n.log 0.16216216 FALSE TRUE FALSE
## D.chrs.pnct01.n.log 0.32432432 FALSE TRUE FALSE
## D.wrds.stop.n.log 0.54054054 FALSE FALSE FALSE
## D.P.spacegray 0.10810811 FALSE TRUE FALSE
## D.T.use 1.51351351 FALSE TRUE FALSE
## D.weight.sum.stem.stop.Ratio 33.56756757 FALSE FALSE FALSE
## D.ratio.weight.sum.wrds.n 34.81081081 FALSE FALSE TRUE
## D.P.black 0.10810811 FALSE TRUE TRUE
## .rnorm 100.00000000 FALSE FALSE FALSE
## D.P.mini 0.16216216 FALSE TRUE FALSE
## startprice.dcm1.is9 0.10810811 FALSE FALSE FALSE
## D.P.air 0.16216216 FALSE TRUE FALSE
## storage.fctr 0.27027027 FALSE FALSE FALSE
## D.chrs.pnct11.n.log 0.37837838 FALSE FALSE FALSE
## D.P.gold 0.10810811 FALSE TRUE FALSE
## D.chrs.pnct03.n.log 0.10810811 FALSE TRUE FALSE
## D.chrs.pnct18.n.log 0.10810811 FALSE TRUE FALSE
## D.T.or 1.08108108 FALSE TRUE FALSE
## D.chrs.pnct10.n.log 0.16216216 FALSE TRUE FALSE
## D.T.from 0.70270270 FALSE TRUE FALSE
## D.chrs.pnct13.n.log 0.48648649 FALSE FALSE FALSE
## D.T.light 0.91891892 FALSE TRUE FALSE
## D.T.condit 1.35135135 FALSE TRUE FALSE
## D.chrs.pnct08.n.log 0.21621622 FALSE TRUE FALSE
## startprice.dgt2.is9 0.10810811 FALSE FALSE FALSE
## D.T.minor 0.97297297 FALSE TRUE FALSE
## startprice.dgt3.is9 0.10810811 FALSE TRUE FALSE
## color.fctr 0.27027027 FALSE FALSE FALSE
## D.weight.post.stop.sum 34.75675676 FALSE FALSE FALSE
## D.weight.post.stem.sum 34.64864865 FALSE FALSE FALSE
## D.weight.sum 34.64864865 FALSE FALSE FALSE
## D.chrs.pnct12.n.log 0.21621622 FALSE TRUE FALSE
## D.chrs.pnct28.n.log 0.16216216 FALSE TRUE FALSE
## prdl.my.fctr 0.54054054 FALSE FALSE FALSE
## D.chrs.uppr.n.log 4.48648649 FALSE FALSE FALSE
## D.chrs.n.log 5.35135135 FALSE FALSE FALSE
## D.wrds.n.log 1.29729730 FALSE FALSE FALSE
## D.T.mint 1.02702703 FALSE TRUE FALSE
## carrier.fctr 0.37837838 FALSE FALSE FALSE
## D.chrs.pnct09.n.log 0.21621622 FALSE TRUE FALSE
## D.terms.post.stem.n.log 1.13513514 FALSE FALSE FALSE
## D.wrds.unq.n.log 1.13513514 FALSE FALSE FALSE
## D.terms.post.stop.n.log 1.13513514 FALSE FALSE FALSE
## D.T.with 1.02702703 FALSE TRUE FALSE
## D.T.in. 1.35135135 FALSE TRUE FALSE
## cellular.fctr 0.16216216 FALSE FALSE FALSE
## D.terms.post.stem.n 1.13513514 FALSE FALSE FALSE
## D.terms.post.stop.n 1.13513514 FALSE FALSE FALSE
## D.chrs.pnct14.n.log 0.27027027 FALSE TRUE FALSE
## .clusterid 0.16216216 FALSE FALSE FALSE
## .clusterid.fctr 0.16216216 FALSE FALSE FALSE
## D.dgts.n.log 0.59459459 FALSE TRUE FALSE
## D.T.cosmet 0.81081081 FALSE TRUE FALSE
## D.chrs.pnct06.n.log 0.16216216 FALSE TRUE FALSE
## D.T.X100 0.64864865 FALSE TRUE FALSE
## D.chrs.pnct05.n.log 0.10810811 FALSE TRUE FALSE
## D.T.hous 0.54054054 FALSE TRUE FALSE
## startprice.dgt1.is9 0.10810811 FALSE FALSE FALSE
## condition.fctr 0.32432432 FALSE FALSE FALSE
## UniqueID 100.00000000 FALSE FALSE FALSE
## startprice.log10.predict 87.94594595 FALSE FALSE FALSE
## startprice 30.21621622 FALSE FALSE FALSE
## sprice.log10 30.21621622 FALSE FALSE FALSE
## sprice.root2 30.21621622 FALSE FALSE FALSE
## D.P.http 0.05405405 TRUE TRUE NA
## D.chrs.pnct02.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct04.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct19.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct20.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct21.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct22.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct23.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct24.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct25.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct26.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct27.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct29.n.log 0.05405405 TRUE TRUE NA
## D.chrs.pnct30.n.log 0.05405405 TRUE TRUE NA
plt_feats_df <- glb_feats_df
print(myplot_scatter(plt_feats_df, "percentUnique", "freqRatio",
colorcol_name="nzv", jitter=TRUE) +
#geom_point(aes(shape=nzv)) +
geom_point() +
xlim(-5, 25) +
geom_hline(yintercept=glb_nzv_freqCut) +
geom_vline(xintercept=glb_nzv_uniqueCut))
## Warning in myplot_scatter(plt_feats_df, "percentUnique", "freqRatio",
## colorcol_name = "nzv", : converting nzv to class:factor
## Warning: Removed 13 rows containing missing values (geom_point).
## Warning: Removed 13 rows containing missing values (geom_point).
## Warning: Removed 13 rows containing missing values (geom_point).
print(subset(glb_feats_df, nzv))
## id cor.y
## D.T.of D.T.of 0.052259530
## D.chrs.pnct15.n.log D.chrs.pnct15.n.log 0.048611857
## D.terms.n.stem.stop.Ratio D.terms.n.stem.stop.Ratio 0.043562113
## D.T.screen D.T.screen 0.040605274
## D.chrs.pnct17.n.log D.chrs.pnct17.n.log 0.025087653
## D.chrs.pnct07.n.log D.chrs.pnct07.n.log 0.024330390
## D.P.white D.P.white 0.018597281
## D.T.good D.T.good 0.016394675
## D.chrs.pnct16.n.log D.chrs.pnct16.n.log 0.015642041
## D.chrs.pnct01.n.log D.chrs.pnct01.n.log 0.004291712
## D.P.spacegray D.P.spacegray 0.003532788
## D.T.use D.T.use 0.003025811
## D.P.black D.P.black -0.001181544
## D.P.mini D.P.mini -0.006894908
## D.P.air D.P.air -0.009203749
## D.P.gold D.P.gold -0.021557732
## D.chrs.pnct03.n.log D.chrs.pnct03.n.log -0.021557732
## D.chrs.pnct18.n.log D.chrs.pnct18.n.log -0.021557732
## D.T.or D.T.or -0.022614420
## D.chrs.pnct10.n.log D.chrs.pnct10.n.log -0.024107007
## D.T.from D.T.from -0.030653359
## D.T.light D.T.light -0.032814746
## D.T.condit D.T.condit -0.033248924
## D.chrs.pnct08.n.log D.chrs.pnct08.n.log -0.039606364
## D.T.minor D.T.minor -0.042692360
## startprice.dgt3.is9 startprice.dgt3.is9 -0.043150483
## D.chrs.pnct12.n.log D.chrs.pnct12.n.log -0.049684867
## D.chrs.pnct28.n.log D.chrs.pnct28.n.log -0.052538378
## D.T.mint D.T.mint -0.055691207
## D.chrs.pnct09.n.log D.chrs.pnct09.n.log -0.061919863
## D.T.with D.T.with -0.066087601
## D.T.in. D.T.in. -0.071653919
## D.chrs.pnct14.n.log D.chrs.pnct14.n.log -0.075911474
## D.dgts.n.log D.dgts.n.log -0.082741631
## D.T.cosmet D.T.cosmet -0.088480863
## D.chrs.pnct06.n.log D.chrs.pnct06.n.log -0.095888068
## D.T.X100 D.T.X100 -0.111398502
## D.chrs.pnct05.n.log D.chrs.pnct05.n.log -0.120173065
## D.T.hous D.T.hous -0.129274878
## D.P.http D.P.http NA
## D.chrs.pnct02.n.log D.chrs.pnct02.n.log NA
## D.chrs.pnct04.n.log D.chrs.pnct04.n.log NA
## D.chrs.pnct19.n.log D.chrs.pnct19.n.log NA
## D.chrs.pnct20.n.log D.chrs.pnct20.n.log NA
## D.chrs.pnct21.n.log D.chrs.pnct21.n.log NA
## D.chrs.pnct22.n.log D.chrs.pnct22.n.log NA
## D.chrs.pnct23.n.log D.chrs.pnct23.n.log NA
## D.chrs.pnct24.n.log D.chrs.pnct24.n.log NA
## D.chrs.pnct25.n.log D.chrs.pnct25.n.log NA
## D.chrs.pnct26.n.log D.chrs.pnct26.n.log NA
## D.chrs.pnct27.n.log D.chrs.pnct27.n.log NA
## D.chrs.pnct29.n.log D.chrs.pnct29.n.log NA
## D.chrs.pnct30.n.log D.chrs.pnct30.n.log NA
## exclude.as.feat cor.y.abs cor.high.X
## D.T.of 0 0.052259530 <NA>
## D.chrs.pnct15.n.log 0 0.048611857 <NA>
## D.terms.n.stem.stop.Ratio 0 0.043562113 <NA>
## D.T.screen 0 0.040605274 <NA>
## D.chrs.pnct17.n.log 0 0.025087653 <NA>
## D.chrs.pnct07.n.log 0 0.024330390 <NA>
## D.P.white 0 0.018597281 <NA>
## D.T.good 0 0.016394675 <NA>
## D.chrs.pnct16.n.log 0 0.015642041 <NA>
## D.chrs.pnct01.n.log 0 0.004291712 <NA>
## D.P.spacegray 0 0.003532788 <NA>
## D.T.use 0 0.003025811 <NA>
## D.P.black 0 0.001181544 <NA>
## D.P.mini 0 0.006894908 <NA>
## D.P.air 0 0.009203749 <NA>
## D.P.gold 0 0.021557732 <NA>
## D.chrs.pnct03.n.log 0 0.021557732 <NA>
## D.chrs.pnct18.n.log 0 0.021557732 <NA>
## D.T.or 0 0.022614420 <NA>
## D.chrs.pnct10.n.log 0 0.024107007 <NA>
## D.T.from 0 0.030653359 <NA>
## D.T.light 0 0.032814746 <NA>
## D.T.condit 0 0.033248924 <NA>
## D.chrs.pnct08.n.log 0 0.039606364 <NA>
## D.T.minor 0 0.042692360 <NA>
## startprice.dgt3.is9 0 0.043150483 <NA>
## D.chrs.pnct12.n.log 0 0.049684867 <NA>
## D.chrs.pnct28.n.log 0 0.052538378 <NA>
## D.T.mint 0 0.055691207 <NA>
## D.chrs.pnct09.n.log 0 0.061919863 <NA>
## D.T.with 0 0.066087601 <NA>
## D.T.in. 0 0.071653919 <NA>
## D.chrs.pnct14.n.log 0 0.075911474 <NA>
## D.dgts.n.log 0 0.082741631 <NA>
## D.T.cosmet 0 0.088480863 <NA>
## D.chrs.pnct06.n.log 0 0.095888068 <NA>
## D.T.X100 0 0.111398502 D.chrs.pnct05.n.log
## D.chrs.pnct05.n.log 0 0.120173065 <NA>
## D.T.hous 0 0.129274878 <NA>
## D.P.http 0 NA <NA>
## D.chrs.pnct02.n.log 0 NA <NA>
## D.chrs.pnct04.n.log 0 NA <NA>
## D.chrs.pnct19.n.log 0 NA <NA>
## D.chrs.pnct20.n.log 0 NA <NA>
## D.chrs.pnct21.n.log 0 NA <NA>
## D.chrs.pnct22.n.log 0 NA <NA>
## D.chrs.pnct23.n.log 0 NA <NA>
## D.chrs.pnct24.n.log 0 NA <NA>
## D.chrs.pnct25.n.log 0 NA <NA>
## D.chrs.pnct26.n.log 0 NA <NA>
## D.chrs.pnct27.n.log 0 NA <NA>
## D.chrs.pnct29.n.log 0 NA <NA>
## D.chrs.pnct30.n.log 0 NA <NA>
## freqRatio percentUnique zeroVar nzv
## D.T.of 145.00000 1.13513514 FALSE TRUE
## D.chrs.pnct15.n.log 152.66667 0.16216216 FALSE TRUE
## D.terms.n.stem.stop.Ratio 85.14286 0.64864865 FALSE TRUE
## D.T.screen 70.91667 1.13513514 FALSE TRUE
## D.chrs.pnct17.n.log 1849.00000 0.10810811 FALSE TRUE
## D.chrs.pnct07.n.log 107.52941 0.16216216 FALSE TRUE
## D.P.white 230.12500 0.16216216 FALSE TRUE
## D.T.good 95.16667 1.18918919 FALSE TRUE
## D.chrs.pnct16.n.log 263.14286 0.16216216 FALSE TRUE
## D.chrs.pnct01.n.log 52.70588 0.32432432 FALSE TRUE
## D.P.spacegray 461.50000 0.10810811 FALSE TRUE
## D.T.use 86.63158 1.51351351 FALSE TRUE
## D.P.black 167.18182 0.10810811 FALSE TRUE
## D.P.mini 96.31579 0.16216216 FALSE TRUE
## D.P.air 122.26667 0.16216216 FALSE TRUE
## D.P.gold 1849.00000 0.10810811 FALSE TRUE
## D.chrs.pnct03.n.log 1849.00000 0.10810811 FALSE TRUE
## D.chrs.pnct18.n.log 1849.00000 0.10810811 FALSE TRUE
## D.T.or 87.95000 1.08108108 FALSE TRUE
## D.chrs.pnct10.n.log 307.16667 0.16216216 FALSE TRUE
## D.T.from 95.31579 0.70270270 FALSE TRUE
## D.T.light 99.27778 0.91891892 FALSE TRUE
## D.T.condit 36.82927 1.35135135 FALSE TRUE
## D.chrs.pnct08.n.log 69.23077 0.21621622 FALSE TRUE
## D.T.minor 92.52632 0.97297297 FALSE TRUE
## startprice.dgt3.is9 461.50000 0.10810811 FALSE TRUE
## D.chrs.pnct12.n.log 28.46774 0.21621622 FALSE TRUE
## D.chrs.pnct28.n.log 461.00000 0.16216216 FALSE TRUE
## D.T.mint 94.89474 1.02702703 FALSE TRUE
## D.chrs.pnct09.n.log 306.83333 0.21621622 FALSE TRUE
## D.T.with 46.88889 1.02702703 FALSE TRUE
## D.T.in. 33.52174 1.35135135 FALSE TRUE
## D.chrs.pnct14.n.log 35.17647 0.27027027 FALSE TRUE
## D.dgts.n.log 34.34000 0.59459459 FALSE TRUE
## D.T.cosmet 88.40000 0.81081081 FALSE TRUE
## D.chrs.pnct06.n.log 60.46667 0.16216216 FALSE TRUE
## D.T.X100 180.50000 0.64864865 FALSE TRUE
## D.chrs.pnct05.n.log 39.21739 0.10810811 FALSE TRUE
## D.T.hous 81.68182 0.54054054 FALSE TRUE
## D.P.http 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct02.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct04.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct19.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct20.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct21.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct22.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct23.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct24.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct25.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct26.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct27.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct29.n.log 0.00000 0.05405405 TRUE TRUE
## D.chrs.pnct30.n.log 0.00000 0.05405405 TRUE TRUE
## is.cor.y.abs.low
## D.T.of FALSE
## D.chrs.pnct15.n.log FALSE
## D.terms.n.stem.stop.Ratio FALSE
## D.T.screen FALSE
## D.chrs.pnct17.n.log FALSE
## D.chrs.pnct07.n.log FALSE
## D.P.white FALSE
## D.T.good FALSE
## D.chrs.pnct16.n.log FALSE
## D.chrs.pnct01.n.log FALSE
## D.P.spacegray FALSE
## D.T.use FALSE
## D.P.black TRUE
## D.P.mini FALSE
## D.P.air FALSE
## D.P.gold FALSE
## D.chrs.pnct03.n.log FALSE
## D.chrs.pnct18.n.log FALSE
## D.T.or FALSE
## D.chrs.pnct10.n.log FALSE
## D.T.from FALSE
## D.T.light FALSE
## D.T.condit FALSE
## D.chrs.pnct08.n.log FALSE
## D.T.minor FALSE
## startprice.dgt3.is9 FALSE
## D.chrs.pnct12.n.log FALSE
## D.chrs.pnct28.n.log FALSE
## D.T.mint FALSE
## D.chrs.pnct09.n.log FALSE
## D.T.with FALSE
## D.T.in. FALSE
## D.chrs.pnct14.n.log FALSE
## D.dgts.n.log FALSE
## D.T.cosmet FALSE
## D.chrs.pnct06.n.log FALSE
## D.T.X100 FALSE
## D.chrs.pnct05.n.log FALSE
## D.T.hous FALSE
## D.P.http NA
## D.chrs.pnct02.n.log NA
## D.chrs.pnct04.n.log NA
## D.chrs.pnct19.n.log NA
## D.chrs.pnct20.n.log NA
## D.chrs.pnct21.n.log NA
## D.chrs.pnct22.n.log NA
## D.chrs.pnct23.n.log NA
## D.chrs.pnct24.n.log NA
## D.chrs.pnct25.n.log NA
## D.chrs.pnct26.n.log NA
## D.chrs.pnct27.n.log NA
## D.chrs.pnct29.n.log NA
## D.chrs.pnct30.n.log NA
tmp_allobs_df <-
glb_allobs_df[, union(setdiff(names(glb_allobs_df), subset(glb_feats_df, nzv)$id),
glb_cluster_entropy_var)]
glb_trnobs_df <- subset(tmp_allobs_df, .src == "Train")
glb_newobs_df <- subset(tmp_allobs_df, .src == "Test")
glb_feats_df$interaction.feat <- NA
for (feat in names(glb_interaction_only_feats_lst))
glb_feats_df[glb_feats_df$id %in% feat, "interaction.feat"] <-
glb_interaction_only_feats_lst[[feat]]
#stop(here"); glb_to_sav(); glb_allobs_df <- sav_allobs_df
indep_vars <- subset(glb_feats_df, !nzv & (exclude.as.feat != 1))[, "id"]
numeric_indep_vars <- indep_vars[!grepl(".fctr", indep_vars, fixed=TRUE)]
glb_feats_df$shapiro.test.p.value <- NA
glb_feats_df[glb_feats_df$id %in% numeric_indep_vars, "shapiro.test.p.value"] <-
sapply(numeric_indep_vars, function(var) shapiro.test(glb_trnobs_df[, var])$p.value)
not_nrml_feats_df <- glb_feats_df %>%
subset(!is.na(shapiro.test.p.value)) %>%
subset((shapiro.test.p.value < 0.05) || (id == ".rnorm")) %>%
arrange(shapiro.test.p.value)
row.names(not_nrml_feats_df) <- not_nrml_feats_df$id
#plt_trnobs_df <- glb_trnobs_df[, c("D.npnct05.log", ".rnorm")]
plt_trnobs_df <- glb_trnobs_df[, c(union(not_nrml_feats_df$id[1:min(5, nrow(not_nrml_feats_df))],
".rnorm"), glb_cluster_entropy_var)]
print(myplot_violin(plt_trnobs_df, setdiff(names(plt_trnobs_df), glb_cluster_entropy_var),
xcol_name = glb_cluster_entropy_var) +
facet_wrap(~variable, scales="free"))
#myplot_histogram(plt_trnobs_df, "D.npnct11.log", fill_col_name="sold", show_stats = TRUE)
myadjust_interaction_feats <- function(vars_vctr) {
for (feat in subset(glb_feats_df, !is.na(interaction.feat))$id)
if (feat %in% vars_vctr)
vars_vctr <- union(setdiff(vars_vctr, feat),
paste0(glb_feats_df[glb_feats_df$id == feat, "interaction.feat"], ":",
feat))
return(vars_vctr)
}
myrun_rfe <- function(obs_df, indep_vars, sizes = NULL) {
rfe_obs_df <- myget_vectorized_obs_df(obs_df, glb_rsp_var, indep_vars)
predictors_vctr <- setdiff(names(rfe_obs_df), glb_rsp_var)
if (glb_is_regression) rfeFuncs <- lmFuncs else {
rfeFuncs <- ldaFuncs
# Delete non-variant columns
predictors_unqLen <- sapply(predictors_vctr, function(col)
length(unique(rfe_obs_df[, col])))
predictors_vctr <- predictors_vctr[predictors_unqLen > 1]
# Delete freqRatio >= 291
# plagiarized from caret:::nzv
predictors_freqRatio <-
apply(rfe_obs_df[, predictors_vctr], 2, function(data) {
t <- table(data[!is.na(data)])
if (length(t) <= 1) {
return(0)
}
w <- which.max(t)
return(max(t, na.rm = TRUE)/max(t[-w], na.rm = TRUE))
})
predictors_vctr <- predictors_vctr[predictors_freqRatio < 172]
}
if (is.null(sizes))
sizes <- tail(2 ^ (1:as.integer(log2(length(predictors_vctr)))), 5)
rfe_control <- rfeControl(functions = rfeFuncs, method = "repeatedcv",
number = glb_rcv_n_folds, repeats = glb_rcv_n_repeats,
verbose = TRUE, returnResamp = "all",
seeds = mygen_seeds(seeds_lst_len =
(glb_rcv_n_folds * glb_rcv_n_repeats) + 1,
seeds_elmnt_lst_len = (length(sizes) + 1))
, allowParallel = FALSE
)
set.seed(113)
rfe_results <- rfe(rfe_obs_df[, predictors_vctr],
rfe_obs_df[, glb_rsp_var],
sizes = sizes,
# metric = unlist(strsplit(glbMdlMetricsEval, "[.]"))[2],
# maximize = ifelse(unlist(strsplit(glbMdlMetricsEval, "[.]"))[1] == "max",
# TRUE, FALSE),
rfeControl = rfe_control)
print(rfe_results)
print(predictors(rfe_results))
# print(plot(rfe_results, type=c("g", "o")))
# print(plot(rfe_results))
print(ggplot(rfe_results))
return(rfe_results)
}
#stop(here"); glb_to_sav()
# shd .clusterid.fctr be excluded from this ? or include encoding of glb_category_var:.clusterid.fctr ?
indep_vars <- myadjust_interaction_feats(subset(glb_feats_df,
!nzv & (exclude.as.feat != 1))$id)
rfe_fit_results <- myrun_rfe(obs_df = glb_fitobs_df, indep_vars = indep_vars,
sizes = glbRFESizes[["RFE.X"]])
## +(rfe) fit Fold1.Rep1 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep1 size: 70
## +(rfe) imp Fold1.Rep1
## -(rfe) imp Fold1.Rep1
## +(rfe) fit Fold1.Rep1 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep1 size: 69
## +(rfe) fit Fold1.Rep1 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep1 size: 68
## +(rfe) fit Fold1.Rep1 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep1 size: 67
## +(rfe) fit Fold1.Rep1 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep1 size: 64
## +(rfe) fit Fold1.Rep1 size: 32
## -(rfe) fit Fold1.Rep1 size: 32
## +(rfe) fit Fold1.Rep1 size: 16
## -(rfe) fit Fold1.Rep1 size: 16
## +(rfe) fit Fold1.Rep1 size: 8
## -(rfe) fit Fold1.Rep1 size: 8
## +(rfe) fit Fold1.Rep1 size: 4
## -(rfe) fit Fold1.Rep1 size: 4
## +(rfe) fit Fold2.Rep1 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep1 size: 70
## +(rfe) imp Fold2.Rep1
## -(rfe) imp Fold2.Rep1
## +(rfe) fit Fold2.Rep1 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep1 size: 69
## +(rfe) fit Fold2.Rep1 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep1 size: 68
## +(rfe) fit Fold2.Rep1 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep1 size: 67
## +(rfe) fit Fold2.Rep1 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep1 size: 64
## +(rfe) fit Fold2.Rep1 size: 32
## -(rfe) fit Fold2.Rep1 size: 32
## +(rfe) fit Fold2.Rep1 size: 16
## -(rfe) fit Fold2.Rep1 size: 16
## +(rfe) fit Fold2.Rep1 size: 8
## -(rfe) fit Fold2.Rep1 size: 8
## +(rfe) fit Fold2.Rep1 size: 4
## -(rfe) fit Fold2.Rep1 size: 4
## +(rfe) fit Fold3.Rep1 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep1 size: 70
## +(rfe) imp Fold3.Rep1
## -(rfe) imp Fold3.Rep1
## +(rfe) fit Fold3.Rep1 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep1 size: 69
## +(rfe) fit Fold3.Rep1 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep1 size: 68
## +(rfe) fit Fold3.Rep1 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep1 size: 67
## +(rfe) fit Fold3.Rep1 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep1 size: 64
## +(rfe) fit Fold3.Rep1 size: 32
## -(rfe) fit Fold3.Rep1 size: 32
## +(rfe) fit Fold3.Rep1 size: 16
## -(rfe) fit Fold3.Rep1 size: 16
## +(rfe) fit Fold3.Rep1 size: 8
## -(rfe) fit Fold3.Rep1 size: 8
## +(rfe) fit Fold3.Rep1 size: 4
## -(rfe) fit Fold3.Rep1 size: 4
## +(rfe) fit Fold1.Rep2 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep2 size: 70
## +(rfe) imp Fold1.Rep2
## -(rfe) imp Fold1.Rep2
## +(rfe) fit Fold1.Rep2 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep2 size: 69
## +(rfe) fit Fold1.Rep2 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep2 size: 68
## +(rfe) fit Fold1.Rep2 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep2 size: 67
## +(rfe) fit Fold1.Rep2 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep2 size: 64
## +(rfe) fit Fold1.Rep2 size: 32
## -(rfe) fit Fold1.Rep2 size: 32
## +(rfe) fit Fold1.Rep2 size: 16
## -(rfe) fit Fold1.Rep2 size: 16
## +(rfe) fit Fold1.Rep2 size: 8
## -(rfe) fit Fold1.Rep2 size: 8
## +(rfe) fit Fold1.Rep2 size: 4
## -(rfe) fit Fold1.Rep2 size: 4
## +(rfe) fit Fold2.Rep2 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep2 size: 70
## +(rfe) imp Fold2.Rep2
## -(rfe) imp Fold2.Rep2
## +(rfe) fit Fold2.Rep2 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep2 size: 69
## +(rfe) fit Fold2.Rep2 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep2 size: 68
## +(rfe) fit Fold2.Rep2 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep2 size: 67
## +(rfe) fit Fold2.Rep2 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep2 size: 64
## +(rfe) fit Fold2.Rep2 size: 32
## -(rfe) fit Fold2.Rep2 size: 32
## +(rfe) fit Fold2.Rep2 size: 16
## -(rfe) fit Fold2.Rep2 size: 16
## +(rfe) fit Fold2.Rep2 size: 8
## -(rfe) fit Fold2.Rep2 size: 8
## +(rfe) fit Fold2.Rep2 size: 4
## -(rfe) fit Fold2.Rep2 size: 4
## +(rfe) fit Fold3.Rep2 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep2 size: 70
## +(rfe) imp Fold3.Rep2
## -(rfe) imp Fold3.Rep2
## +(rfe) fit Fold3.Rep2 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep2 size: 69
## +(rfe) fit Fold3.Rep2 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep2 size: 68
## +(rfe) fit Fold3.Rep2 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep2 size: 67
## +(rfe) fit Fold3.Rep2 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep2 size: 64
## +(rfe) fit Fold3.Rep2 size: 32
## -(rfe) fit Fold3.Rep2 size: 32
## +(rfe) fit Fold3.Rep2 size: 16
## -(rfe) fit Fold3.Rep2 size: 16
## +(rfe) fit Fold3.Rep2 size: 8
## -(rfe) fit Fold3.Rep2 size: 8
## +(rfe) fit Fold3.Rep2 size: 4
## -(rfe) fit Fold3.Rep2 size: 4
## +(rfe) fit Fold1.Rep3 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep3 size: 70
## +(rfe) imp Fold1.Rep3
## -(rfe) imp Fold1.Rep3
## +(rfe) fit Fold1.Rep3 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep3 size: 69
## +(rfe) fit Fold1.Rep3 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep3 size: 68
## +(rfe) fit Fold1.Rep3 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep3 size: 67
## +(rfe) fit Fold1.Rep3 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold1.Rep3 size: 64
## +(rfe) fit Fold1.Rep3 size: 32
## -(rfe) fit Fold1.Rep3 size: 32
## +(rfe) fit Fold1.Rep3 size: 16
## -(rfe) fit Fold1.Rep3 size: 16
## +(rfe) fit Fold1.Rep3 size: 8
## -(rfe) fit Fold1.Rep3 size: 8
## +(rfe) fit Fold1.Rep3 size: 4
## -(rfe) fit Fold1.Rep3 size: 4
## +(rfe) fit Fold2.Rep3 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep3 size: 70
## +(rfe) imp Fold2.Rep3
## -(rfe) imp Fold2.Rep3
## +(rfe) fit Fold2.Rep3 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep3 size: 69
## +(rfe) fit Fold2.Rep3 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep3 size: 68
## +(rfe) fit Fold2.Rep3 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep3 size: 67
## +(rfe) fit Fold2.Rep3 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold2.Rep3 size: 64
## +(rfe) fit Fold2.Rep3 size: 32
## -(rfe) fit Fold2.Rep3 size: 32
## +(rfe) fit Fold2.Rep3 size: 16
## -(rfe) fit Fold2.Rep3 size: 16
## +(rfe) fit Fold2.Rep3 size: 8
## -(rfe) fit Fold2.Rep3 size: 8
## +(rfe) fit Fold2.Rep3 size: 4
## -(rfe) fit Fold2.Rep3 size: 4
## +(rfe) fit Fold3.Rep3 size: 70
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep3 size: 70
## +(rfe) imp Fold3.Rep3
## -(rfe) imp Fold3.Rep3
## +(rfe) fit Fold3.Rep3 size: 69
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep3 size: 69
## +(rfe) fit Fold3.Rep3 size: 68
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep3 size: 68
## +(rfe) fit Fold3.Rep3 size: 67
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep3 size: 67
## +(rfe) fit Fold3.Rep3 size: 64
## Warning in lda.default(x, grouping, ...): variables are collinear
## -(rfe) fit Fold3.Rep3 size: 64
## +(rfe) fit Fold3.Rep3 size: 32
## -(rfe) fit Fold3.Rep3 size: 32
## +(rfe) fit Fold3.Rep3 size: 16
## -(rfe) fit Fold3.Rep3 size: 16
## +(rfe) fit Fold3.Rep3 size: 8
## -(rfe) fit Fold3.Rep3 size: 8
## +(rfe) fit Fold3.Rep3 size: 4
## -(rfe) fit Fold3.Rep3 size: 4
## Warning in lda.default(x, grouping, ...): variables are collinear
##
## Recursive feature selection
##
## Outer resampling method: Cross-Validated (3 fold, repeated 3 times)
##
## Resampling performance over subset size:
##
## Variables Accuracy Kappa AccuracySD KappaSD Selected
## 4 0.7951 0.5866 0.01779 0.03553
## 8 0.7954 0.5870 0.02906 0.05706
## 16 0.8046 0.6049 0.02248 0.04531
## 32 0.8118 0.6190 0.02555 0.05141
## 64 0.8183 0.6330 0.02513 0.05031
## 67 0.8203 0.6372 0.02865 0.05763
## 68 0.8189 0.6347 0.02863 0.05748
## 69 0.8258 0.6482 0.02137 0.04275 *
## 70 0.8258 0.6482 0.02137 0.04275
##
## The top 5 variables (out of 69):
## sprice.d20nexp, sprice.log10, sprice.root2, biddable, spdiff.cut.fctr(1,10]
##
## [1] "sprice.d20nexp"
## [2] "sprice.log10"
## [3] "sprice.root2"
## [4] "biddable"
## [5] "spdiff.cut.fctr(1,10]"
## [6] "spdiff.cut.fctr(-1,0]"
## [7] "spdiff.cut.fctr(10,100]"
## [8] "cellular.fctr0:carrier.fctrNone"
## [9] "spdiff.cut.fctr(-10,-1]"
## [10] "prdl.my.fctriPad1"
## [11] "spdiff.cut.fctr(0,1]"
## [12] "D.ratio.wrds.stop.n.wrds.n"
## [13] "storage.fctr16"
## [14] "condition.fctrFor parts or not working"
## [15] "D.weight.sum.stem.stop.Ratio"
## [16] "color.fctrUnknown"
## [17] "prdl.my.fctriPad3"
## [18] "startprice.dcm2.is9"
## [19] "prdl.my.fctriPad2"
## [20] ".rnorm"
## [21] "storage.fctr32"
## [22] "prdl.my.fctriPadmini"
## [23] "cellular.fctr1:carrier.fctrVerizon"
## [24] "D.chrs.pnct11.n.log"
## [25] "prdl.my.fctriPad1:.clusterid.fctr2"
## [26] "prdl.my.fctriPadAir:.clusterid.fctr2"
## [27] "prdl.my.fctriPad1:.clusterid.fctr3"
## [28] "prdl.my.fctriPadmini2"
## [29] "prdl.my.fctriPad4:.clusterid.fctr2"
## [30] "prdl.my.fctriPad3:.clusterid.fctr2"
## [31] "cellular.fctr1:carrier.fctrSprint"
## [32] "storage.fctr64"
## [33] "prdl.my.fctrUnknown:.clusterid.fctr3"
## [34] "cellular.fctr1:carrier.fctrT-Mobile"
## [35] "D.wrds.stop.n.log"
## [36] "prdl.my.fctrUnknown:.clusterid.fctr2"
## [37] "condition.fctrManufacturer refurbished"
## [38] "startprice.dcm1.is9"
## [39] "condition.fctrNew other (see details)"
## [40] "prdl.my.fctriPadAir"
## [41] "prdl.my.fctriPad4"
## [42] "color.fctrGold"
## [43] "prdl.my.fctriPad4:.clusterid.fctr3"
## [44] "cellular.fctr1:carrier.fctrUnknown"
## [45] "startprice.dgt2.is9"
## [46] "color.fctrWhite"
## [47] "prdl.my.fctriPadAir2"
## [48] "D.ratio.weight.sum.wrds.n"
## [49] "storage.fctrUnknown"
## [50] "spdiff.cut.fctr(100,1e+03]"
## [51] "color.fctrSpace Gray"
## [52] "D.chrs.pnct13.n.log"
## [53] "prdl.my.fctriPadmini3"
## [54] "cellular.fctrUnknown"
## [55] "cellular.fctrUnknown:carrier.fctrUnknown"
## [56] "cellular.fctr1"
## [57] "condition.fctrSeller refurbished"
## [58] "D.weight.post.stop.sum"
## [59] "D.weight.post.stem.sum"
## [60] "D.weight.sum"
## [61] "D.wrds.n.log"
## [62] "D.chrs.uppr.n.log"
## [63] "D.chrs.n.log"
## [64] "D.wrds.unq.n.log"
## [65] "D.terms.post.stem.n.log"
## [66] "D.terms.post.stop.n.log"
## [67] "condition.fctrNew"
## [68] "startprice.dgt1.is9"
## [69] "spdiff.cut.fctr(-100,-10]"
# print(all.equal(rfe_results[-which(names(rfe_results) == "times")],
# sav_rfe_results[-which(names(sav_rfe_results) == "times")]))
# require(mRMRe)
# indep_vars_vctr <- subset(glb_feats_df, !nzv &
# (exclude.as.feat != 1))[, "id"]
# indep_vars_vctr <- setdiff(indep_vars_vctr,
# myfind_fctr_cols_df(glb_trnobs_df[, c(glb_rsp_var, indep_vars_vctr)]))
# tmp_trnobs_df <- glb_trnobs_df[, c(glb_rsp_var, indep_vars_vctr)]
# tmp_trnobs_df$biddable <- as.numeric(tmp_trnobs_df$biddable)
# dd <- mRMR.data(data = tmp_trnobs_df)
# mRMRe.fltr <- mRMR.classic(data = dd, target_indices = c(1), feature_count = 10)
# print(solutions(mRMRe.fltr)[[1]])
# print(apply(solutions(mRMRe.fltr)[[1]], 2, function(x, y) { return(y[x]) },
# y=featureNames(dd)))
# print(featureNames(dd)[solutions(mRMRe.fltr)[[1]]])
# print(mRMRe.fltr@filters); print(mRMRe.fltr@scores)
mycheck_problem_data(glb_allobs_df, featsExclude = glbFeatsExclude,
fctrMaxUniqVals = glbFctrMaxUniqVals, terminate = TRUE)
## [1] "numeric data missing in : "
## sold sold.fctr
## 798 798
## [1] "numeric data w/ 0s in : "
## biddable sold
## 1437 995
## sprice.log10 cellular.fctr
## 31 1590
## D.terms.post.stop.n D.terms.post.stop.n.log
## 1516 1516
## D.weight.post.stop.sum D.terms.post.stem.n
## 1516 1516
## D.terms.post.stem.n.log D.weight.post.stem.sum
## 1516 1516
## D.T.condit D.T.use
## 2156 2363
## D.T.in. D.T.good
## 2216 2451
## D.T.screen D.T.with
## 2440 2434
## D.T.of D.T.mint
## 2497 2585
## D.T.or D.T.cosmet
## 2523 2531
## D.T.minor D.T.light
## 2531 2567
## D.T.X100 D.T.from
## 2584 2591
## D.T.hous D.wrds.n.log
## 2576 1513
## D.wrds.unq.n.log D.weight.sum
## 1516 1516
## D.ratio.weight.sum.wrds.n D.chrs.n.log
## 1516 1513
## D.chrs.uppr.n.log D.dgts.n.log
## 1515 2452
## D.chrs.pnct01.n.log D.chrs.pnct02.n.log
## 2570 2648
## D.chrs.pnct03.n.log D.chrs.pnct04.n.log
## 2647 2648
## D.chrs.pnct05.n.log D.chrs.pnct06.n.log
## 2582 2596
## D.chrs.pnct07.n.log D.chrs.pnct08.n.log
## 2611 2572
## D.chrs.pnct09.n.log D.chrs.pnct10.n.log
## 2632 2639
## D.chrs.pnct11.n.log D.chrs.pnct12.n.log
## 2294 2534
## D.chrs.pnct13.n.log D.chrs.pnct14.n.log
## 1930 2574
## D.chrs.pnct15.n.log D.chrs.pnct16.n.log
## 2628 2639
## D.chrs.pnct17.n.log D.chrs.pnct18.n.log
## 2646 2647
## D.chrs.pnct19.n.log D.chrs.pnct20.n.log
## 2648 2648
## D.chrs.pnct21.n.log D.chrs.pnct22.n.log
## 2648 2648
## D.chrs.pnct23.n.log D.chrs.pnct24.n.log
## 2648 2648
## D.chrs.pnct25.n.log D.chrs.pnct26.n.log
## 2648 2648
## D.chrs.pnct27.n.log D.chrs.pnct28.n.log
## 2648 2640
## D.chrs.pnct29.n.log D.chrs.pnct30.n.log
## 2648 2648
## D.wrds.stop.n.log D.P.http
## 1965 2648
## D.P.mini D.P.air
## 2615 2627
## D.P.black D.P.white
## 2631 2638
## D.P.gold D.P.spacegray
## 2647 2642
## startprice.dgt1.is9 startprice.dgt2.is9
## 1779 2290
## startprice.dgt3.is9 startprice.dcm1.is9
## 2643 1653
## startprice.dcm2.is9
## 1826
## [1] "numeric data w/ Infs in : "
## named integer(0)
## [1] "numeric data w/ NaNs in : "
## named integer(0)
## [1] "string data missing in : "
## description condition cellular carrier color storage
## 1513 0 0 0 0 0
## productline .grpid descr.my .lcn
## 0 NA 1513 798
# glb_allobs_df %>% filter(is.na(Married.fctr)) %>% tbl_df()
# glb_allobs_df %>% count(Married.fctr)
# levels(glb_allobs_df$Married.fctr)
print("glb_feats_df:"); print(dim(glb_feats_df))
## [1] "glb_feats_df:"
## [1] 93 12
sav_feats_df <- glb_feats_df
glb_feats_df <- sav_feats_df
glb_feats_df[, "rsp_var_raw"] <- FALSE
glb_feats_df[glb_feats_df$id == glb_rsp_var_raw, "rsp_var_raw"] <- TRUE
glb_feats_df$exclude.as.feat <- (glb_feats_df$exclude.as.feat == 1)
if (!is.null(glb_id_var) && glb_id_var != ".rownames")
glb_feats_df[glb_feats_df$id %in% glb_id_var, "id_var"] <- TRUE
add_feats_df <- data.frame(id=glb_rsp_var, exclude.as.feat=TRUE, rsp_var=TRUE)
row.names(add_feats_df) <- add_feats_df$id; print(add_feats_df)
## id exclude.as.feat rsp_var
## sold.fctr sold.fctr TRUE TRUE
glb_feats_df <- myrbind_df(glb_feats_df, add_feats_df)
if (glb_id_var != ".rownames")
print(subset(glb_feats_df, rsp_var_raw | rsp_var | id_var)) else
print(subset(glb_feats_df, rsp_var_raw | rsp_var))
## id cor.y exclude.as.feat cor.y.abs cor.high.X
## sold sold 1.0000000 TRUE 1.0000000 <NA>
## UniqueID UniqueID -0.1906261 TRUE 0.1906261 <NA>
## sold.fctr sold.fctr NA TRUE NA <NA>
## freqRatio percentUnique zeroVar nzv is.cor.y.abs.low
## sold 1.163743 0.1081081 FALSE FALSE FALSE
## UniqueID 1.000000 100.0000000 FALSE FALSE FALSE
## sold.fctr NA NA NA NA NA
## interaction.feat shapiro.test.p.value rsp_var_raw id_var rsp_var
## sold <NA> NA TRUE NA NA
## UniqueID <NA> NA FALSE TRUE NA
## sold.fctr <NA> NA NA NA TRUE
print("glb_feats_df vs. glb_allobs_df: ");
## [1] "glb_feats_df vs. glb_allobs_df: "
print(setdiff(glb_feats_df$id, names(glb_allobs_df)))
## character(0)
print("glb_allobs_df vs. glb_feats_df: ");
## [1] "glb_allobs_df vs. glb_feats_df: "
# Ensure these are only chr vars
print(setdiff(setdiff(names(glb_allobs_df), glb_feats_df$id),
myfind_chr_cols_df(glb_allobs_df)))
## character(0)
if (glb_save_envir)
save(glb_feats_df,
glb_allobs_df, #glb_trnobs_df, glb_fitobs_df, glb_OOBobs_df, glb_newobs_df,
file=paste0(glb_out_pfx, "selfts_dsk.RData"))
# load(paste0(glb_out_pfx, "blddfs_dsk.RData"))
# if (!all.equal(tmp_feats_df, glb_feats_df))
# stop("glb_feats_df r/w not working")
# if (!all.equal(tmp_entity_df, glb_allobs_df))
# stop("glb_allobs_df r/w not working")
glb_chunks_df <- myadd_chunk(glb_chunks_df, "fit.models", major.inc=TRUE)
## label step_major step_minor label_minor bgn end
## 9 select.features 5 0 0 299.849 311.142
## 10 fit.models 6 0 0 311.142 NA
## elapsed
## 9 11.293
## 10 NA
6.0: fit models# load(paste0(glb_out_pfx, "dsk.RData"))
get_model_sel_frmla <- function() {
model_evl_terms <- c(NULL)
# min.aic.fit might not be avl
lclMdlEvlCriteria <-
glbMdlMetricsEval[glbMdlMetricsEval %in% names(glb_models_df)]
for (metric in lclMdlEvlCriteria)
model_evl_terms <- c(model_evl_terms,
ifelse(length(grep("max", metric)) > 0, "-", "+"), metric)
if (glb_is_classification && glb_is_binomial)
model_evl_terms <- c(model_evl_terms, "-", "opt.prob.threshold.OOB")
model_sel_frmla <- as.formula(paste(c("~ ", model_evl_terms), collapse = " "))
return(model_sel_frmla)
}
get_dsp_models_df <- function() {
dsp_models_cols <- c("id",
glbMdlMetricsEval[glbMdlMetricsEval %in% names(glb_models_df)],
grep("opt.", names(glb_models_df), fixed = TRUE, value = TRUE))
dsp_models_df <-
#orderBy(get_model_sel_frmla(), glb_models_df)[, c("id", glbMdlMetricsEval)]
orderBy(get_model_sel_frmla(), glb_models_df)[, dsp_models_cols]
nCvMdl <- sapply(glb_models_lst, function(mdl) nrow(mdl$results))
nParams <- sapply(glb_models_lst, function(mdl) ifelse(mdl$method == "custom", 0,
nrow(subset(modelLookup(mdl$method), parameter != "parameter"))))
# nCvMdl <- nCvMdl[names(nCvMdl) != "avNNet"]
# nParams <- nParams[names(nParams) != "avNNet"]
if (length(cvMdlProblems <- nCvMdl[nCvMdl <= nParams]) > 0) {
print("Cross Validation issues:")
warning("Cross Validation issues:")
print(cvMdlProblems)
}
pltMdls <- setdiff(names(nCvMdl), names(cvMdlProblems))
pltMdls <- setdiff(pltMdls, names(nParams[nParams == 0]))
# length(pltMdls) == 21
png(paste0(glb_out_pfx, "bestTune.png"), width = 480 * 2, height = 480 * 4)
grid.newpage()
pushViewport(viewport(layout = grid.layout(ceiling(length(pltMdls) / 2.0), 2)))
pltIx <- 1
for (mdlId in pltMdls) {
print(ggplot(glb_models_lst[[mdlId]], highBestTune = TRUE) + labs(title = mdlId),
vp = viewport(layout.pos.row = ceiling(pltIx / 2.0),
layout.pos.col = ((pltIx - 1) %% 2) + 1))
pltIx <- pltIx + 1
}
dev.off()
return(dsp_models_df)
}
#get_dsp_models_df()
if (glb_is_classification && glb_is_binomial &&
(length(unique(glb_fitobs_df[, glb_rsp_var])) < 2))
stop("glb_fitobs_df$", glb_rsp_var, ": contains less than 2 unique values: ",
paste0(unique(glb_fitobs_df[, glb_rsp_var]), collapse=", "))
max_cor_y_x_vars <- orderBy(~ -cor.y.abs,
subset(glb_feats_df, (exclude.as.feat == 0) & !nzv & !is.cor.y.abs.low &
is.na(cor.high.X)))[1:2, "id"]
# while(length(max_cor_y_x_vars) < 2) {
# max_cor_y_x_vars <- c(max_cor_y_x_vars, orderBy(~ -cor.y.abs,
# subset(glb_feats_df, (exclude.as.feat == 0) & !is.cor.y.abs.low))[3, "id"])
# }
#stop(here"); glb_to_sav(); glb_models_lst <- sav_models_lst; glb_models_df <- sav_models_df
if (!is.null(glb_Baseline_mdl_var)) {
if ((max_cor_y_x_vars[1] != glb_Baseline_mdl_var) &
(glb_feats_df[glb_feats_df$id == max_cor_y_x_vars[1], "cor.y.abs"] >
glb_feats_df[glb_feats_df$id == glb_Baseline_mdl_var, "cor.y.abs"]))
stop(max_cor_y_x_vars[1], " has a higher correlation with ", glb_rsp_var,
" than the Baseline var: ", glb_Baseline_mdl_var)
}
glb_model_type <- ifelse(glb_is_regression, "regression", "classification")
# Model specs
c("id.prefix", "method", "type",
# trainControl params
"preProc.method", "cv.n.folds", "cv.n.repeats", "summary.fn",
# train params
"metric", "metric.maximize", "tune.df")
## [1] "id.prefix" "method" "type"
## [4] "preProc.method" "cv.n.folds" "cv.n.repeats"
## [7] "summary.fn" "metric" "metric.maximize"
## [10] "tune.df"
# Baseline
if (!is.null(glb_Baseline_mdl_var))
ret_lst <- myfit_mdl(mdl_id="Baseline",
model_method="mybaseln_classfr",
indep_vars_vctr=glb_Baseline_mdl_var,
rsp_var=glb_rsp_var, rsp_var_out=glb_rsp_var_out,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df)
# Most Frequent Outcome "MFO" model: mean(y) for regression
# Not using caret's nullModel since model stats not avl
# Cannot use rpart for multinomial classification since it predicts non-MFO
ret_lst <- myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = "MFO", type = glb_model_type, trainControl.method = "none",
train.method = ifelse(glb_is_regression, "lm", "myMFO_classfr"))),
indep_vars = ".rnorm", rsp_var = glb_rsp_var,
fit_df = glb_fitobs_df, OOB_df = glb_OOBobs_df)
## [1] "fitting model: MFO.myMFO_classfr"
## [1] " indep_vars: .rnorm"
## Warning in if (mdl_specs_lst[["train.method"]] %in% c("bayesglm", "glm", :
## the condition has length > 1 and only the first element will be used
## Fitting parameter = none on full training set
## [1] "in MFO.Classifier$fit"
## [1] "unique.vals:"
## [1] N Y
## Levels: N Y
## [1] "unique.prob:"
## y
## N Y
## 0.5372549 0.4627451
## [1] "MFO.val:"
## [1] "N"
## Length Class Mode
## unique.vals 2 factor numeric
## unique.prob 2 -none- numeric
## MFO.val 1 -none- character
## x.names 1 -none- character
## xNames 1 -none- character
## problemType 1 -none- character
## tuneValue 1 data.frame list
## obsLevels 2 -none- character
## [1] "entr MFO.Classifier$predict"
## [1] "exit MFO.Classifier$predict"
## Loading required package: ROCR
## Loading required package: gplots
##
## Attaching package: 'gplots'
##
## The following object is masked from 'package:wordcloud':
##
## textplot
##
## The following object is masked from 'package:stats':
##
## lowess
## [1] "in MFO.Classifier$prob"
## N Y
## 1 0.5372549 0.4627451
## 2 0.5372549 0.4627451
## 3 0.5372549 0.4627451
## 4 0.5372549 0.4627451
## 5 0.5372549 0.4627451
## 6 0.5372549 0.4627451
## sold.fctr sold.fctr.predict.MFO.myMFO_classfr.Y
## 1 N 548
## 2 Y 472
## Prediction
## Reference N Y
## N 0 548
## Y 0 472
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 4.627451e-01 0.000000e+00 4.318011e-01 4.939047e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 9.999992e-01 9.327417e-121
## [1] "entr MFO.Classifier$predict"
## [1] "exit MFO.Classifier$predict"
## [1] "in MFO.Classifier$prob"
## N Y
## 1 0.5372549 0.4627451
## 2 0.5372549 0.4627451
## 3 0.5372549 0.4627451
## 4 0.5372549 0.4627451
## 5 0.5372549 0.4627451
## 6 0.5372549 0.4627451
## sold.fctr sold.fctr.predict.MFO.myMFO_classfr.Y
## 1 N 447
## 2 Y 383
## Prediction
## Reference N Y
## N 0 447
## Y 0 383
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 4.614458e-01 0.000000e+00 4.271177e-01 4.960486e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 9.999963e-01 8.826336e-99
## id feats max.nTuningRuns min.elapsedtime.everything
## 1 MFO.myMFO_classfr .rnorm 0 0.288
## min.elapsedtime.final max.AUCpROC.fit max.Sens.fit max.Spec.fit
## 1 0.003 0.5 1 0
## max.AUCROCR.fit opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.5 0.4 0.6327078 0.4627451
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.4318011 0.4939047 0
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.5 1 0 0.5
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.4 0.6314922 0.4614458
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.4271177 0.4960486 0
if (glb_is_classification)
# "random" model - only for classification;
# none needed for regression since it is same as MFO
ret_lst <- myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = "Random", type = glb_model_type, trainControl.method = "none",
train.method = "myrandom_classfr")),
indep_vars = ".rnorm", rsp_var = glb_rsp_var,
fit_df = glb_fitobs_df, OOB_df = glb_OOBobs_df)
## [1] "fitting model: Random.myrandom_classfr"
## [1] " indep_vars: .rnorm"
## Warning in if (mdl_specs_lst[["train.method"]] %in% c("bayesglm", "glm", :
## the condition has length > 1 and only the first element will be used
## Fitting parameter = none on full training set
## Length Class Mode
## unique.vals 2 factor numeric
## unique.prob 2 table numeric
## xNames 1 -none- character
## problemType 1 -none- character
## tuneValue 1 data.frame list
## obsLevels 2 -none- character
## [1] "in Random.Classifier$prob"
## sold.fctr sold.fctr.predict.Random.myrandom_classfr.Y
## 1 N 548
## 2 Y 472
## Prediction
## Reference N Y
## N 0 548
## Y 0 472
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 4.627451e-01 0.000000e+00 4.318011e-01 4.939047e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 9.999992e-01 9.327417e-121
## [1] "in Random.Classifier$prob"
## sold.fctr sold.fctr.predict.Random.myrandom_classfr.Y
## 1 N 447
## 2 Y 383
## Prediction
## Reference N Y
## N 0 447
## Y 0 383
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 4.614458e-01 0.000000e+00 4.271177e-01 4.960486e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 9.999963e-01 8.826336e-99
## id feats max.nTuningRuns
## 1 Random.myrandom_classfr .rnorm 0
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 0.293 0.002 0.4859659
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.5164234 0.4555085 0.4893217 0.4
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.6327078 0.4627451 0.4318011
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.4939047 0 0.5064252 0.5480984
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.464752 0.4956046 0.4 0.6314922
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.4614458 0.4271177 0.4960486
## max.Kappa.OOB
## 1 0
# ret_lst <- myfit_mdl(mdl_id = "Random", model_method = "myrandom_classfr",
# model_type = glb_model_type,
# indep_vars_vctr = ".rnorm",
# rsp_var = glb_rsp_var, rsp_var_out = glb_rsp_var_out,
# fit_df = glb_fitobs_df, OOB_df = glb_OOBobs_df)
# Any models that have tuning parameters has "better" results with cross-validation
# (except bag & rf) & "different" results for different outcome metrics
# Max.cor.Y
# Check impact of cv
# rpart is not a good candidate since caret does not optimize cp (only tuning parameter of rpart) well
ret_lst <- myfit_mdl(mdl_specs_lst=myinit_mdl_specs_lst(mdl_specs_lst=list(
id.prefix="Max.cor.Y.rcv.1X1", type=glb_model_type, trainControl.method="none",
train.method="glmnet")),
indep_vars=max_cor_y_x_vars, rsp_var=glb_rsp_var,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df)
## [1] "fitting model: Max.cor.Y.rcv.1X1.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Loading required package: glmnet
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
##
## The following object is masked from 'package:tidyr':
##
## expand
##
## Loaded glmnet 2.0-2
## Fitting alpha = 0.1, lambda = 0.00576 on full training set
## Length Class Mode
## a0 79 -none- numeric
## beta 158 dgCMatrix S4
## df 79 -none- numeric
## dim 2 -none- numeric
## lambda 79 -none- numeric
## dev.ratio 79 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 1.0277229 1.8660218 -0.1575942
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 1.0358390 1.8708816 -0.1583838
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.1X1.glmnet.N
## 1 N 432
## 2 Y 104
## sold.fctr.predict.Max.cor.Y.rcv.1X1.glmnet.Y
## 1 116
## 2 368
## Prediction
## Reference N Y
## N 432 116
## Y 104 368
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.843137e-01 5.669826e-01 7.577802e-01 8.091950e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 1.365269e-60 4.583177e-01
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.1X1.glmnet.N
## 1 N 352
## 2 Y 94
## sold.fctr.predict.Max.cor.Y.rcv.1X1.glmnet.Y
## 1 95
## 2 289
## Prediction
## Reference N Y
## N 352 95
## Y 94 289
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.722892e-01 5.419399e-01 7.422177e-01 8.004125e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 2.113571e-44 1.000000e+00
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.1X1.glmnet biddable,sprice.root2 0
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 0.958 0.022 0.7898522
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8339416 0.7457627 0.86206 0.4
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7698745 0.7843137 0.7577802
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.809195 0.5669826 0.7665376 0.8255034
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.7075718 0.8197236 0.4 0.7535854
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7722892 0.7422177 0.8004125
## max.Kappa.OOB
## 1 0.5419399
# rcv_n_folds == 1 & rcv_n_repeats > 1 crashes
for (rcv_n_folds in seq(3, glb_rcv_n_folds + 2, 2))
for (rcv_n_repeats in seq(1, glb_rcv_n_repeats + 2, 2)) {
ret_lst <- myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = paste0("Max.cor.Y.rcv.", rcv_n_folds, "X", rcv_n_repeats),
type = glb_model_type, trainControl.method = "repeatedcv",
trainControl.number = rcv_n_folds, trainControl.repeats = rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.method = "glmnet", train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize)),
indep_vars = max_cor_y_x_vars, rsp_var = glb_rsp_var,
fit_df = glb_fitobs_df, OOB_df = glb_OOBobs_df)
}
## [1] "fitting model: Max.cor.Y.rcv.3X1.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.1, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: alpha
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: lambda
## Length Class Mode
## a0 79 -none- numeric
## beta 158 dgCMatrix S4
## df 79 -none- numeric
## dim 2 -none- numeric
## lambda 79 -none- numeric
## dev.ratio 79 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.39977062 1.21150458 -0.08600408
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.4231996 1.2510219 -0.0892442
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.3X1.glmnet.N
## 1 N 457
## 2 Y 118
## sold.fctr.predict.Max.cor.Y.rcv.3X1.glmnet.Y
## 1 91
## 2 354
## Prediction
## Reference N Y
## N 457 91
## Y 118 354
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.950980e-01 5.862671e-01 7.690020e-01 8.194783e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 3.331019e-66 7.210452e-02
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.3X1.glmnet.N
## 1 N 342
## 2 Y 89
## sold.fctr.predict.Max.cor.Y.rcv.3X1.glmnet.Y
## 1 105
## 2 294
## Prediction
## Reference N Y
## N 342 105
## Y 89 294
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.662651e-01 5.311363e-01 7.359543e-01 7.946712e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 4.058545e-42 2.815083e-01
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.3X1.glmnet biddable,sprice.root2 25
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 1.402 0.018 0.7919708
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8339416 0.75 0.8621335 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7720829 0.7950911 0.769002
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8194783 0.5860164 0.7592654 0.8187919
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6997389 0.8197353 0.4 0.7519182
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7662651 0.7359543 0.7946712
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5311363 0.003934893 0.009324777
## [1] "fitting model: Max.cor.Y.rcv.3X3.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.325, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: lambda
## Length Class Mode
## a0 67 -none- numeric
## beta 134 dgCMatrix S4
## df 67 -none- numeric
## dim 2 -none- numeric
## lambda 67 -none- numeric
## dev.ratio 67 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.36344652 1.18295779 -0.08216503
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.39118688 1.22752496 -0.08592317
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.3X3.glmnet.N
## 1 N 457
## 2 Y 118
## sold.fctr.predict.Max.cor.Y.rcv.3X3.glmnet.Y
## 1 91
## 2 354
## Prediction
## Reference N Y
## N 457 91
## Y 118 354
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.950980e-01 5.862671e-01 7.690020e-01 8.194783e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 3.331019e-66 7.210452e-02
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.3X3.glmnet.N
## 1 N 341
## 2 Y 88
## sold.fctr.predict.Max.cor.Y.rcv.3X3.glmnet.Y
## 1 106
## 2 295
## Prediction
## Reference N Y
## N 341 106
## Y 88 295
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.662651e-01 5.313109e-01 7.359543e-01 7.946712e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 4.058545e-42 2.222645e-01
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.3X3.glmnet biddable,sprice.root2 25
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 1.972 0.015 0.7919708
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8339416 0.75 0.8622147 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7720829 0.7954221 0.769002
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8194783 0.5866808 0.760384 0.8210291
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6997389 0.819747 0.4 0.752551
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7662651 0.7359543 0.7946712
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5313109 0.0200887 0.04087803
## [1] "fitting model: Max.cor.Y.rcv.3X5.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.55, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: lambda
## Length Class Mode
## a0 61 -none- numeric
## beta 122 dgCMatrix S4
## df 61 -none- numeric
## dim 2 -none- numeric
## lambda 61 -none- numeric
## dev.ratio 61 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.28887900 1.10455877 -0.07355771
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.32191930 1.15672712 -0.07800633
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.3X5.glmnet.N
## 1 N 457
## 2 Y 118
## sold.fctr.predict.Max.cor.Y.rcv.3X5.glmnet.Y
## 1 91
## 2 354
## Prediction
## Reference N Y
## N 457 91
## Y 118 354
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.950980e-01 5.862671e-01 7.690020e-01 8.194783e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 3.331019e-66 7.210452e-02
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.3X5.glmnet.N
## 1 N 340
## 2 Y 88
## sold.fctr.predict.Max.cor.Y.rcv.3X5.glmnet.Y
## 1 107
## 2 295
## Prediction
## Reference N Y
## N 340 107
## Y 88 295
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.650602e-01 5.289828e-01 7.347026e-01 7.935220e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.138374e-41 1.973957e-01
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.3X5.glmnet biddable,sprice.root2 25
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 2.397 0.014 0.7919708
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8339416 0.75 0.8622069 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7720829 0.7962655 0.769002
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8194783 0.58834 0.760384 0.8210291
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6997389 0.8196593 0.4 0.7515924
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7650602 0.7347026 0.793522
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5289828 0.01812066 0.03689711
## [1] "fitting model: Max.cor.Y.rcv.5X1.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.775, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: lambda
## Length Class Mode
## a0 57 -none- numeric
## beta 114 dgCMatrix S4
## df 57 -none- numeric
## dim 2 -none- numeric
## lambda 57 -none- numeric
## dev.ratio 57 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.19570698 1.01735782 -0.06318327
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.23591040 1.07863496 -0.06852179
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.5X1.glmnet.N
## 1 N 461
## 2 Y 118
## sold.fctr.predict.Max.cor.Y.rcv.5X1.glmnet.Y
## 1 87
## 2 354
## Prediction
## Reference N Y
## N 461 87
## Y 118 354
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.990196e-01 5.939459e-01 7.730893e-01 8.232111e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 2.536091e-68 3.614514e-02
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.5X1.glmnet.N
## 1 N 339
## 2 Y 88
## sold.fctr.predict.Max.cor.Y.rcv.5X1.glmnet.Y
## 1 108
## 2 295
## Prediction
## Reference N Y
## N 339 108
## Y 88 295
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.638554e-01 5.266555e-01 7.334512e-01 7.923725e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 3.171799e-41 1.747358e-01
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.5X1.glmnet biddable,sprice.root2 25
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 1.708 0.015 0.7956204
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8412409 0.75 0.8621064 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7754655 0.7990899 0.7730893
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8232111 0.5944245 0.7615026 0.8232662
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6997389 0.81956 0.4 0.7506361
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7638554 0.7334512 0.7923725
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5266555 0.03608644 0.07068726
## [1] "fitting model: Max.cor.Y.rcv.5X3.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.775, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: lambda
## Length Class Mode
## a0 57 -none- numeric
## beta 114 dgCMatrix S4
## df 57 -none- numeric
## dim 2 -none- numeric
## lambda 57 -none- numeric
## dev.ratio 57 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.19570698 1.01735782 -0.06318327
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.23591040 1.07863496 -0.06852179
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.5X3.glmnet.N
## 1 N 461
## 2 Y 118
## sold.fctr.predict.Max.cor.Y.rcv.5X3.glmnet.Y
## 1 87
## 2 354
## Prediction
## Reference N Y
## N 461 87
## Y 118 354
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.990196e-01 5.939459e-01 7.730893e-01 8.232111e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 2.536091e-68 3.614514e-02
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.5X3.glmnet.N
## 1 N 339
## 2 Y 88
## sold.fctr.predict.Max.cor.Y.rcv.5X3.glmnet.Y
## 1 108
## 2 295
## Prediction
## Reference N Y
## N 339 108
## Y 88 295
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.638554e-01 5.266555e-01 7.334512e-01 7.923725e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 3.171799e-41 1.747358e-01
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.5X3.glmnet biddable,sprice.root2 25
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 2.367 0.015 0.7956204
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8412409 0.75 0.8621064 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7754655 0.7964364 0.7730893
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8232111 0.5888026 0.7615026 0.8232662
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6997389 0.81956 0.4 0.7506361
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7638554 0.7334512 0.7923725
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5266555 0.03349187 0.06729278
## [1] "fitting model: Max.cor.Y.rcv.5X5.glmnet"
## [1] " indep_vars: biddable,sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 1, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: alpha
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst =
## list(id.prefix = paste0("Max.cor.Y.rcv.", : model's bestTune found at an
## extreme of tuneGrid for parameter: lambda
## Length Class Mode
## a0 54 -none- numeric
## beta 108 dgCMatrix S4
## df 54 -none- numeric
## dim 2 -none- numeric
## lambda 54 -none- numeric
## dev.ratio 54 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 2 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.12532879 0.99816406 -0.05704275
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable sprice.root2
## 0.17511926 1.06475879 -0.06331821
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.5X5.glmnet.N
## 1 N 463
## 2 Y 119
## sold.fctr.predict.Max.cor.Y.rcv.5X5.glmnet.Y
## 1 85
## 2 353
## Prediction
## Reference N Y
## N 463 85
## Y 119 353
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.000000e-01 5.957477e-01 7.741117e-01 8.241437e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 7.378773e-69 2.086258e-02
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.5X5.glmnet.N
## 1 N 338
## 2 Y 87
## sold.fctr.predict.Max.cor.Y.rcv.5X5.glmnet.Y
## 1 109
## 2 296
## Prediction
## Reference N Y
## N 338 109
## Y 87 296
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.638554e-01 5.268317e-01 7.334512e-01 7.923725e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 3.171799e-41 1.336144e-01
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.5X5.glmnet biddable,sprice.root2 25
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 2.914 0.015 0.7963859
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8448905 0.7478814 0.8621064 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7758242 0.7970687 0.7741117
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8241437 0.5901123 0.7641135 0.8232662
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.7049608 0.819379 0.4 0.751269
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7638554 0.7334512 0.7923725
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5268317 0.03129087 0.06285747
# Add parallel coordinates graph of glb_models_df[, glbMdlMetricsEval] to evaluate cv parameters
tmp_models_cols <- c("id", "max.nTuningRuns",
glbMdlMetricsEval[glbMdlMetricsEval %in% names(glb_models_df)],
grep("opt.", names(glb_models_df), fixed = TRUE, value = TRUE))
print(myplot_parcoord(obs_df = subset(glb_models_df,
grepl("Max.cor.Y.rcv.", id, fixed = TRUE),
select = -feats)[, tmp_models_cols],
id_var = "id"))
ret_lst <- myfit_mdl(mdl_specs_lst=myinit_mdl_specs_lst(mdl_specs_lst=list(
id.prefix="Max.cor.Y.rcv.1X1.cp.0", type=glb_model_type, trainControl.method="none",
train.method="rpart",
tune.df=data.frame(method="rpart", parameter="cp", min=0.0, max=0.0, by=0.1))),
indep_vars=max_cor_y_x_vars, rsp_var=glb_rsp_var,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df)
## [1] "fitting model: Max.cor.Y.rcv.1X1.cp.0.rpart"
## [1] " indep_vars: biddable,sprice.root2"
## Loading required package: rpart
## Fitting cp = 0 on full training set
## Loading required package: rpart.plot
## Call:
## rpart(formula = .outcome ~ ., control = list(minsplit = 20, minbucket = 7,
## cp = 0, maxcompete = 4, maxsurrogate = 5, usesurrogate = 2,
## surrogatestyle = 0, maxdepth = 30, xval = 0))
## n= 1020
##
## CP nsplit rel error
## 1 0.546610169 0 1.0000000
## 2 0.025423729 1 0.4533898
## 3 0.010593220 2 0.4279661
## 4 0.006355932 5 0.3961864
## 5 0.003531073 6 0.3898305
## 6 0.002118644 9 0.3792373
## 7 0.001059322 16 0.3644068
## 8 0.000000000 20 0.3601695
##
## Variable importance
## biddable sprice.root2
## 52 48
##
## Node number 1: 1020 observations, complexity param=0.5466102
## predicted class=N expected loss=0.4627451 P(node) =1
## class counts: 548 472
## probabilities: 0.537 0.463
## left son=2 (554 obs) right son=3 (466 obs)
## Primary splits:
## biddable < 0.5 to the left, improve=169.2715, (0 missing)
## sprice.root2 < 10.23963 to the right, improve=133.6444, (0 missing)
## Surrogate splits:
## sprice.root2 < 12.26518 to the right, agree=0.751, adj=0.455, (0 split)
##
## Node number 2: 554 observations, complexity param=0.003531073
## predicted class=N expected loss=0.198556 P(node) =0.5431373
## class counts: 444 110
## probabilities: 0.801 0.199
## left son=4 (124 obs) right son=5 (430 obs)
## Primary splits:
## sprice.root2 < 19.90914 to the right, improve=3.855349, (0 missing)
##
## Node number 3: 466 observations, complexity param=0.02542373
## predicted class=Y expected loss=0.223176 P(node) =0.4568627
## class counts: 104 362
## probabilities: 0.223 0.777
## left son=6 (164 obs) right son=7 (302 obs)
## Primary splits:
## sprice.root2 < 11.83195 to the right, improve=49.71379, (0 missing)
##
## Node number 4: 124 observations
## predicted class=N expected loss=0.08870968 P(node) =0.1215686
## class counts: 113 11
## probabilities: 0.911 0.089
##
## Node number 5: 430 observations, complexity param=0.003531073
## predicted class=N expected loss=0.2302326 P(node) =0.4215686
## class counts: 331 99
## probabilities: 0.770 0.230
## left son=10 (263 obs) right son=11 (167 obs)
## Primary splits:
## sprice.root2 < 13.61047 to the right, improve=1.786236, (0 missing)
##
## Node number 6: 164 observations, complexity param=0.01059322
## predicted class=N expected loss=0.4634146 P(node) =0.1607843
## class counts: 88 76
## probabilities: 0.537 0.463
## left son=12 (19 obs) right son=13 (145 obs)
## Primary splits:
## sprice.root2 < 20.33187 to the right, improve=2.748634, (0 missing)
##
## Node number 7: 302 observations
## predicted class=Y expected loss=0.05298013 P(node) =0.2960784
## class counts: 16 286
## probabilities: 0.053 0.947
##
## Node number 10: 263 observations
## predicted class=N expected loss=0.1939163 P(node) =0.2578431
## class counts: 212 51
## probabilities: 0.806 0.194
##
## Node number 11: 167 observations, complexity param=0.003531073
## predicted class=N expected loss=0.2874251 P(node) =0.1637255
## class counts: 119 48
## probabilities: 0.713 0.287
## left son=22 (158 obs) right son=23 (9 obs)
## Primary splits:
## sprice.root2 < 13.41548 to the left, improve=4.574556, (0 missing)
##
## Node number 12: 19 observations
## predicted class=N expected loss=0.2105263 P(node) =0.01862745
## class counts: 15 4
## probabilities: 0.789 0.211
##
## Node number 13: 145 observations, complexity param=0.01059322
## predicted class=N expected loss=0.4965517 P(node) =0.1421569
## class counts: 73 72
## probabilities: 0.503 0.497
## left son=26 (87 obs) right son=27 (58 obs)
## Primary splits:
## sprice.root2 < 13.89077 to the right, improve=1.554023, (0 missing)
##
## Node number 22: 158 observations, complexity param=0.002118644
## predicted class=N expected loss=0.2594937 P(node) =0.154902
## class counts: 117 41
## probabilities: 0.741 0.259
## left son=44 (30 obs) right son=45 (128 obs)
## Primary splits:
## sprice.root2 < 12.54832 to the right, improve=1.884019, (0 missing)
##
## Node number 23: 9 observations
## predicted class=Y expected loss=0.2222222 P(node) =0.008823529
## class counts: 2 7
## probabilities: 0.222 0.778
##
## Node number 26: 87 observations, complexity param=0.01059322
## predicted class=N expected loss=0.4367816 P(node) =0.08529412
## class counts: 49 38
## probabilities: 0.563 0.437
## left son=52 (48 obs) right son=53 (39 obs)
## Primary splits:
## sprice.root2 < 16.50717 to the left, improve=2.291777, (0 missing)
##
## Node number 27: 58 observations, complexity param=0.006355932
## predicted class=Y expected loss=0.4137931 P(node) =0.05686275
## class counts: 24 34
## probabilities: 0.414 0.586
## left son=54 (9 obs) right son=55 (49 obs)
## Primary splits:
## sprice.root2 < 12.24684 to the left, improve=1.362421, (0 missing)
##
## Node number 44: 30 observations
## predicted class=N expected loss=0.1 P(node) =0.02941176
## class counts: 27 3
## probabilities: 0.900 0.100
##
## Node number 45: 128 observations, complexity param=0.002118644
## predicted class=N expected loss=0.296875 P(node) =0.1254902
## class counts: 90 38
## probabilities: 0.703 0.297
## left son=90 (95 obs) right son=91 (33 obs)
## Primary splits:
## sprice.root2 < 11.40153 to the left, improve=2.210706, (0 missing)
##
## Node number 52: 48 observations, complexity param=0.001059322
## predicted class=N expected loss=0.3333333 P(node) =0.04705882
## class counts: 32 16
## probabilities: 0.667 0.333
## left son=104 (7 obs) right son=105 (41 obs)
## Primary splits:
## sprice.root2 < 15.89005 to the right, improve=0.5946574, (0 missing)
##
## Node number 53: 39 observations, complexity param=0.002118644
## predicted class=Y expected loss=0.4358974 P(node) =0.03823529
## class counts: 17 22
## probabilities: 0.436 0.564
## left son=106 (15 obs) right son=107 (24 obs)
## Primary splits:
## sprice.root2 < 18.70815 to the right, improve=0.4628205, (0 missing)
##
## Node number 54: 9 observations
## predicted class=N expected loss=0.3333333 P(node) =0.008823529
## class counts: 6 3
## probabilities: 0.667 0.333
##
## Node number 55: 49 observations
## predicted class=Y expected loss=0.3673469 P(node) =0.04803922
## class counts: 18 31
## probabilities: 0.367 0.633
##
## Node number 90: 95 observations, complexity param=0.002118644
## predicted class=N expected loss=0.2421053 P(node) =0.09313725
## class counts: 72 23
## probabilities: 0.758 0.242
## left son=180 (23 obs) right son=181 (72 obs)
## Primary splits:
## sprice.root2 < 10.23963 to the right, improve=1.460984, (0 missing)
##
## Node number 91: 33 observations, complexity param=0.002118644
## predicted class=N expected loss=0.4545455 P(node) =0.03235294
## class counts: 18 15
## probabilities: 0.545 0.455
## left son=182 (26 obs) right son=183 (7 obs)
## Primary splits:
## sprice.root2 < 11.81057 to the right, improve=1.198801, (0 missing)
##
## Node number 104: 7 observations
## predicted class=N expected loss=0.1428571 P(node) =0.006862745
## class counts: 6 1
## probabilities: 0.857 0.143
##
## Node number 105: 41 observations, complexity param=0.001059322
## predicted class=N expected loss=0.3658537 P(node) =0.04019608
## class counts: 26 15
## probabilities: 0.634 0.366
## left son=210 (32 obs) right son=211 (9 obs)
## Primary splits:
## sprice.root2 < 15.8106 to the left, improve=0.8299458, (0 missing)
##
## Node number 106: 15 observations
## predicted class=N expected loss=0.4666667 P(node) =0.01470588
## class counts: 8 7
## probabilities: 0.533 0.467
##
## Node number 107: 24 observations
## predicted class=Y expected loss=0.375 P(node) =0.02352941
## class counts: 9 15
## probabilities: 0.375 0.625
##
## Node number 180: 23 observations
## predicted class=N expected loss=0.08695652 P(node) =0.02254902
## class counts: 21 2
## probabilities: 0.913 0.087
##
## Node number 181: 72 observations, complexity param=0.002118644
## predicted class=N expected loss=0.2916667 P(node) =0.07058824
## class counts: 51 21
## probabilities: 0.708 0.292
## left son=362 (10 obs) right son=363 (62 obs)
## Primary splits:
## sprice.root2 < 5.417281 to the left, improve=0.8532258, (0 missing)
##
## Node number 182: 26 observations
## predicted class=N expected loss=0.3846154 P(node) =0.0254902
## class counts: 16 10
## probabilities: 0.615 0.385
##
## Node number 183: 7 observations
## predicted class=Y expected loss=0.2857143 P(node) =0.006862745
## class counts: 2 5
## probabilities: 0.286 0.714
##
## Node number 210: 32 observations
## predicted class=N expected loss=0.3125 P(node) =0.03137255
## class counts: 22 10
## probabilities: 0.688 0.312
##
## Node number 211: 9 observations
## predicted class=Y expected loss=0.4444444 P(node) =0.008823529
## class counts: 4 5
## probabilities: 0.444 0.556
##
## Node number 362: 10 observations
## predicted class=N expected loss=0.1 P(node) =0.009803922
## class counts: 9 1
## probabilities: 0.900 0.100
##
## Node number 363: 62 observations, complexity param=0.002118644
## predicted class=N expected loss=0.3225806 P(node) =0.06078431
## class counts: 42 20
## probabilities: 0.677 0.323
## left son=726 (55 obs) right son=727 (7 obs)
## Primary splits:
## sprice.root2 < 7.602942 to the right, improve=2.42145, (0 missing)
##
## Node number 726: 55 observations, complexity param=0.001059322
## predicted class=N expected loss=0.2727273 P(node) =0.05392157
## class counts: 40 15
## probabilities: 0.727 0.273
## left son=1452 (29 obs) right son=1453 (26 obs)
## Primary splits:
## sprice.root2 < 9.486569 to the left, improve=1.234627, (0 missing)
##
## Node number 727: 7 observations
## predicted class=Y expected loss=0.2857143 P(node) =0.006862745
## class counts: 2 5
## probabilities: 0.286 0.714
##
## Node number 1452: 29 observations
## predicted class=N expected loss=0.1724138 P(node) =0.02843137
## class counts: 24 5
## probabilities: 0.828 0.172
##
## Node number 1453: 26 observations, complexity param=0.001059322
## predicted class=N expected loss=0.3846154 P(node) =0.0254902
## class counts: 16 10
## probabilities: 0.615 0.385
## left son=2906 (19 obs) right son=2907 (7 obs)
## Primary splits:
## sprice.root2 < 9.565528 to the right, improve=0.6685946, (0 missing)
##
## Node number 2906: 19 observations
## predicted class=N expected loss=0.3157895 P(node) =0.01862745
## class counts: 13 6
## probabilities: 0.684 0.316
##
## Node number 2907: 7 observations
## predicted class=Y expected loss=0.4285714 P(node) =0.006862745
## class counts: 3 4
## probabilities: 0.429 0.571
##
## n= 1020
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 1020 472 N (0.53725490 0.46274510)
## 2) biddable< 0.5 554 110 N (0.80144404 0.19855596)
## 4) sprice.root2>=19.90914 124 11 N (0.91129032 0.08870968) *
## 5) sprice.root2< 19.90914 430 99 N (0.76976744 0.23023256)
## 10) sprice.root2>=13.61047 263 51 N (0.80608365 0.19391635) *
## 11) sprice.root2< 13.61047 167 48 N (0.71257485 0.28742515)
## 22) sprice.root2< 13.41548 158 41 N (0.74050633 0.25949367)
## 44) sprice.root2>=12.54832 30 3 N (0.90000000 0.10000000) *
## 45) sprice.root2< 12.54832 128 38 N (0.70312500 0.29687500)
## 90) sprice.root2< 11.40153 95 23 N (0.75789474 0.24210526)
## 180) sprice.root2>=10.23963 23 2 N (0.91304348 0.08695652) *
## 181) sprice.root2< 10.23963 72 21 N (0.70833333 0.29166667)
## 362) sprice.root2< 5.417281 10 1 N (0.90000000 0.10000000) *
## 363) sprice.root2>=5.417281 62 20 N (0.67741935 0.32258065)
## 726) sprice.root2>=7.602942 55 15 N (0.72727273 0.27272727)
## 1452) sprice.root2< 9.486569 29 5 N (0.82758621 0.17241379) *
## 1453) sprice.root2>=9.486569 26 10 N (0.61538462 0.38461538)
## 2906) sprice.root2>=9.565528 19 6 N (0.68421053 0.31578947) *
## 2907) sprice.root2< 9.565528 7 3 Y (0.42857143 0.57142857) *
## 727) sprice.root2< 7.602942 7 2 Y (0.28571429 0.71428571) *
## 91) sprice.root2>=11.40153 33 15 N (0.54545455 0.45454545)
## 182) sprice.root2>=11.81057 26 10 N (0.61538462 0.38461538) *
## 183) sprice.root2< 11.81057 7 2 Y (0.28571429 0.71428571) *
## 23) sprice.root2>=13.41548 9 2 Y (0.22222222 0.77777778) *
## 3) biddable>=0.5 466 104 Y (0.22317597 0.77682403)
## 6) sprice.root2>=11.83195 164 76 N (0.53658537 0.46341463)
## 12) sprice.root2>=20.33187 19 4 N (0.78947368 0.21052632) *
## 13) sprice.root2< 20.33187 145 72 N (0.50344828 0.49655172)
## 26) sprice.root2>=13.89077 87 38 N (0.56321839 0.43678161)
## 52) sprice.root2< 16.50717 48 16 N (0.66666667 0.33333333)
## 104) sprice.root2>=15.89005 7 1 N (0.85714286 0.14285714) *
## 105) sprice.root2< 15.89005 41 15 N (0.63414634 0.36585366)
## 210) sprice.root2< 15.8106 32 10 N (0.68750000 0.31250000) *
## 211) sprice.root2>=15.8106 9 4 Y (0.44444444 0.55555556) *
## 53) sprice.root2>=16.50717 39 17 Y (0.43589744 0.56410256)
## 106) sprice.root2>=18.70815 15 7 N (0.53333333 0.46666667) *
## 107) sprice.root2< 18.70815 24 9 Y (0.37500000 0.62500000) *
## 27) sprice.root2< 13.89077 58 24 Y (0.41379310 0.58620690)
## 54) sprice.root2< 12.24684 9 3 N (0.66666667 0.33333333) *
## 55) sprice.root2>=12.24684 49 18 Y (0.36734694 0.63265306) *
## 7) sprice.root2< 11.83195 302 16 Y (0.05298013 0.94701987) *
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.1X1.cp.0.rpart.N
## 1 N 484
## 2 Y 107
## sold.fctr.predict.Max.cor.Y.rcv.1X1.cp.0.rpart.Y
## 1 64
## 2 365
## Prediction
## Reference N Y
## N 484 64
## Y 107 365
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.323529e-01 6.606905e-01 8.079872e-01 8.547824e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 4.198532e-88 1.318969e-03
## sold.fctr sold.fctr.predict.Max.cor.Y.rcv.1X1.cp.0.rpart.N
## 1 N 327
## 2 Y 93
## sold.fctr.predict.Max.cor.Y.rcv.1X1.cp.0.rpart.Y
## 1 120
## 2 290
## Prediction
## Reference N Y
## N 327 120
## Y 93 290
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.433735e-01 4.862697e-01 7.122254e-01 7.727821e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 4.300069e-34 7.483233e-02
## id feats max.nTuningRuns
## 1 Max.cor.Y.rcv.1X1.cp.0.rpart biddable,sprice.root2 0
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 0.72 0.013 0.8281424
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8978102 0.7584746 0.8816304 0.4
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.8102109 0.8323529 0.8079872
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8547824 0.6606905 0.750495 0.8456376
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6553525 0.7934621 0.3 0.7313997
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7433735 0.7122254 0.7727821
## max.Kappa.OOB
## 1 0.4862697
#stop(here"); glb_to_sav(); all.equal(glb_models_df, sav_models_df)
# if (glb_is_regression || glb_is_binomial) # For multinomials this model will be run next by default
ret_lst <- myfit_mdl(mdl_specs_lst=myinit_mdl_specs_lst(mdl_specs_lst=list(
id.prefix="Max.cor.Y",
type=glb_model_type, trainControl.method="repeatedcv",
trainControl.number=glb_rcv_n_folds, trainControl.repeats=glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method="rpart")),
indep_vars=max_cor_y_x_vars, rsp_var=glb_rsp_var,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df)
## [1] "fitting model: Max.cor.Y.rpart"
## [1] " indep_vars: biddable,sprice.root2"
## + Fold1.Rep1: cp=0.003531
## - Fold1.Rep1: cp=0.003531
## + Fold2.Rep1: cp=0.003531
## - Fold2.Rep1: cp=0.003531
## + Fold3.Rep1: cp=0.003531
## - Fold3.Rep1: cp=0.003531
## + Fold1.Rep2: cp=0.003531
## - Fold1.Rep2: cp=0.003531
## + Fold2.Rep2: cp=0.003531
## - Fold2.Rep2: cp=0.003531
## + Fold3.Rep2: cp=0.003531
## - Fold3.Rep2: cp=0.003531
## + Fold1.Rep3: cp=0.003531
## - Fold1.Rep3: cp=0.003531
## + Fold2.Rep3: cp=0.003531
## - Fold2.Rep3: cp=0.003531
## + Fold3.Rep3: cp=0.003531
## - Fold3.Rep3: cp=0.003531
## Aggregating results
## Selecting tuning parameters
## Fitting cp = 0.00636 on full training set
## Call:
## rpart(formula = .outcome ~ ., control = list(minsplit = 20, minbucket = 7,
## cp = 0, maxcompete = 4, maxsurrogate = 5, usesurrogate = 2,
## surrogatestyle = 0, maxdepth = 30, xval = 0))
## n= 1020
##
## CP nsplit rel error
## 1 0.546610169 0 1.0000000
## 2 0.025423729 1 0.4533898
## 3 0.010593220 2 0.4279661
## 4 0.006355932 5 0.3961864
##
## Variable importance
## biddable sprice.root2
## 56 44
##
## Node number 1: 1020 observations, complexity param=0.5466102
## predicted class=N expected loss=0.4627451 P(node) =1
## class counts: 548 472
## probabilities: 0.537 0.463
## left son=2 (554 obs) right son=3 (466 obs)
## Primary splits:
## biddable < 0.5 to the left, improve=169.2715, (0 missing)
## sprice.root2 < 10.23963 to the right, improve=133.6444, (0 missing)
## Surrogate splits:
## sprice.root2 < 12.26518 to the right, agree=0.751, adj=0.455, (0 split)
##
## Node number 2: 554 observations
## predicted class=N expected loss=0.198556 P(node) =0.5431373
## class counts: 444 110
## probabilities: 0.801 0.199
##
## Node number 3: 466 observations, complexity param=0.02542373
## predicted class=Y expected loss=0.223176 P(node) =0.4568627
## class counts: 104 362
## probabilities: 0.223 0.777
## left son=6 (164 obs) right son=7 (302 obs)
## Primary splits:
## sprice.root2 < 11.83195 to the right, improve=49.71379, (0 missing)
##
## Node number 6: 164 observations, complexity param=0.01059322
## predicted class=N expected loss=0.4634146 P(node) =0.1607843
## class counts: 88 76
## probabilities: 0.537 0.463
## left son=12 (19 obs) right son=13 (145 obs)
## Primary splits:
## sprice.root2 < 20.33187 to the right, improve=2.748634, (0 missing)
##
## Node number 7: 302 observations
## predicted class=Y expected loss=0.05298013 P(node) =0.2960784
## class counts: 16 286
## probabilities: 0.053 0.947
##
## Node number 12: 19 observations
## predicted class=N expected loss=0.2105263 P(node) =0.01862745
## class counts: 15 4
## probabilities: 0.789 0.211
##
## Node number 13: 145 observations, complexity param=0.01059322
## predicted class=N expected loss=0.4965517 P(node) =0.1421569
## class counts: 73 72
## probabilities: 0.503 0.497
## left son=26 (87 obs) right son=27 (58 obs)
## Primary splits:
## sprice.root2 < 13.89077 to the right, improve=1.554023, (0 missing)
##
## Node number 26: 87 observations, complexity param=0.01059322
## predicted class=N expected loss=0.4367816 P(node) =0.08529412
## class counts: 49 38
## probabilities: 0.563 0.437
## left son=52 (48 obs) right son=53 (39 obs)
## Primary splits:
## sprice.root2 < 16.50717 to the left, improve=2.291777, (0 missing)
##
## Node number 27: 58 observations
## predicted class=Y expected loss=0.4137931 P(node) =0.05686275
## class counts: 24 34
## probabilities: 0.414 0.586
##
## Node number 52: 48 observations
## predicted class=N expected loss=0.3333333 P(node) =0.04705882
## class counts: 32 16
## probabilities: 0.667 0.333
##
## Node number 53: 39 observations
## predicted class=Y expected loss=0.4358974 P(node) =0.03823529
## class counts: 17 22
## probabilities: 0.436 0.564
##
## n= 1020
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 1020 472 N (0.53725490 0.46274510)
## 2) biddable< 0.5 554 110 N (0.80144404 0.19855596) *
## 3) biddable>=0.5 466 104 Y (0.22317597 0.77682403)
## 6) sprice.root2>=11.83195 164 76 N (0.53658537 0.46341463)
## 12) sprice.root2>=20.33187 19 4 N (0.78947368 0.21052632) *
## 13) sprice.root2< 20.33187 145 72 N (0.50344828 0.49655172)
## 26) sprice.root2>=13.89077 87 38 N (0.56321839 0.43678161)
## 52) sprice.root2< 16.50717 48 16 N (0.66666667 0.33333333) *
## 53) sprice.root2>=16.50717 39 17 Y (0.43589744 0.56410256) *
## 27) sprice.root2< 13.89077 58 24 Y (0.41379310 0.58620690) *
## 7) sprice.root2< 11.83195 302 16 Y (0.05298013 0.94701987) *
## sold.fctr sold.fctr.predict.Max.cor.Y.rpart.N
## 1 N 491
## 2 Y 130
## sold.fctr.predict.Max.cor.Y.rpart.Y
## 1 57
## 2 342
## Prediction
## Reference N Y
## N 491 57
## Y 130 342
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.166667e-01 6.272891e-01 7.915283e-01 8.399619e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 2.183067e-78 1.400662e-07
## sold.fctr sold.fctr.predict.Max.cor.Y.rpart.N
## 1 N 368
## 2 Y 112
## sold.fctr.predict.Max.cor.Y.rpart.Y
## 1 79
## 2 271
## Prediction
## Reference N Y
## N 368 79
## Y 112 271
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.698795e-01 5.341327e-01 7.397113e-01 7.981170e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.766677e-43 2.058893e-02
## id feats max.nTuningRuns
## 1 Max.cor.Y.rpart biddable,sprice.root2 5
## min.elapsedtime.everything min.elapsedtime.final max.AUCpROC.fit
## 1 1.521 0.012 0.8102808
## max.Sens.fit max.Spec.fit max.AUCROCR.fit opt.prob.threshold.fit
## 1 0.8959854 0.7245763 0.8387008 0.5
## max.f.score.fit max.Accuracy.fit max.AccuracyLower.fit
## 1 0.7853042 0.7964073 0.7915283
## max.AccuracyUpper.fit max.Kappa.fit max.AUCpROC.OOB max.Sens.OOB
## 1 0.8399619 0.5852116 0.7445254 0.8545861
## max.Spec.OOB max.AUCROCR.OOB opt.prob.threshold.OOB max.f.score.OOB
## 1 0.6344648 0.7855854 0.3 0.739427
## max.Accuracy.OOB max.AccuracyLower.OOB max.AccuracyUpper.OOB
## 1 0.7698795 0.7397113 0.798117
## max.Kappa.OOB max.AccuracySD.fit max.KappaSD.fit
## 1 0.5341327 0.02006899 0.04005915
if (!is.null(glb_date_vars) &&
(sum(grepl(paste(glb_date_vars, "\\.day\\.minutes\\.poly\\.", sep=""),
names(glb_allobs_df))) > 0)) {
# ret_lst <- myfit_mdl(mdl_id="Max.cor.Y.TmSrs.poly1",
# model_method=ifelse(glb_is_regression, "lm",
# ifelse(glb_is_binomial, "glm", "rpart")),
# model_type=glb_model_type,
# indep_vars_vctr=c(max_cor_y_x_vars, paste0(glb_date_vars, ".day.minutes")),
# rsp_var=glb_rsp_var, rsp_var_out=glb_rsp_var_out,
# fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df,
# n_cv_folds=glb_rcv_n_folds, tune_models_df=NULL)
#
ret_lst <- myfit_mdl(mdl_id="Max.cor.Y.TmSrs.poly",
model_method=ifelse(glb_is_regression, "lm",
ifelse(glb_is_binomial, "glm", "rpart")),
model_type=glb_model_type,
indep_vars_vctr=c(max_cor_y_x_vars,
grep(paste(glb_date_vars, "\\.day\\.minutes\\.poly\\.", sep=""),
names(glb_allobs_df), value=TRUE)),
rsp_var=glb_rsp_var, rsp_var_out=glb_rsp_var_out,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df,
n_cv_folds=glb_rcv_n_folds, tune_models_df=NULL)
}
# Interactions.High.cor.Y
if (length(int_feats <- setdiff(setdiff(unique(glb_feats_df$cor.high.X), NA),
subset(glb_feats_df, nzv)$id)) > 0) {
ret_lst <- myfit_mdl(mdl_specs_lst=myinit_mdl_specs_lst(mdl_specs_lst=list(
id.prefix="Interact.High.cor.Y",
type=glb_model_type, trainControl.method="repeatedcv",
trainControl.number=glb_rcv_n_folds, trainControl.repeats=glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method="glmnet")),
indep_vars=c(max_cor_y_x_vars, paste(max_cor_y_x_vars[1], int_feats, sep=":")),
rsp_var=glb_rsp_var,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df)
}
## [1] "fitting model: Interact.High.cor.Y.glmnet"
## [1] " indep_vars: biddable,sprice.root2,biddable:sprice.log10,biddable:D.terms.post.stop.n.log,biddable:startprice.dcm2.is9,biddable:D.weight.post.stem.sum,biddable:D.chrs.n.log,biddable:cellular.fctr,biddable:D.terms.post.stem.n.log,biddable:sprice.root2"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.325, lambda = 0.00124 on full training set
## Length Class Mode
## a0 100 -none- numeric
## beta 1100 dgCMatrix S4
## df 100 -none- numeric
## dim 2 -none- numeric
## lambda 100 -none- numeric
## dev.ratio 100 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 11 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept) biddable
## 0.01092205 4.74489316
## sprice.root2 biddable:D.chrs.n.log
## -0.08925084 0.07353070
## biddable:D.terms.post.stop.n.log biddable:D.weight.post.stem.sum
## -0.03122283 -0.14511418
## biddable:cellular.fctr1 biddable:cellular.fctrUnknown
## -0.13728156 -1.05190220
## biddable:sprice.log10 biddable:sprice.root2
## -0.10196500 -0.15254153
## biddable:startprice.dcm2.is9
## -0.04646263
## [1] "max lambda < lambdaOpt:"
## (Intercept) biddable
## -0.002342312 4.814280953
## sprice.root2 biddable:D.chrs.n.log
## -0.088443437 0.099967006
## biddable:D.terms.post.stop.n.log biddable:D.weight.post.stem.sum
## -0.057642263 -0.156438317
## biddable:cellular.fctr1 biddable:cellular.fctrUnknown
## -0.141662526 -1.060718650
## biddable:sprice.log10 biddable:sprice.root2
## -0.113943290 -0.152574470
## biddable:startprice.dcm2.is9
## -0.056816165
## sold.fctr sold.fctr.predict.Interact.High.cor.Y.glmnet.N
## 1 N 467
## 2 Y 124
## sold.fctr.predict.Interact.High.cor.Y.glmnet.Y
## 1 81
## 2 348
## Prediction
## Reference N Y
## N 467 81
## Y 124 348
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.990196e-01 5.932255e-01 7.730893e-01 8.232111e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 2.536091e-68 3.352638e-03
## sold.fctr sold.fctr.predict.Interact.High.cor.Y.glmnet.N
## 1 N 349
## 2 Y 93
## sold.fctr.predict.Interact.High.cor.Y.glmnet.Y
## 1 98
## 2 290
## Prediction
## Reference N Y
## N 349 98
## Y 93 290
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.698795e-01 5.374385e-01 7.397113e-01 7.981170e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.766677e-43 7.722525e-01
## id
## 1 Interact.High.cor.Y.glmnet
## feats
## 1 biddable,sprice.root2,biddable:sprice.log10,biddable:D.terms.post.stop.n.log,biddable:startprice.dcm2.is9,biddable:D.weight.post.stem.sum,biddable:D.chrs.n.log,biddable:cellular.fctr,biddable:D.terms.post.stem.n.log,biddable:sprice.root2
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 2.592 0.095
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.7970973 0.8886861 0.7055085 0.863937
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.772475 0.8026098
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.7730893 0.8232111 0.5988972
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7551533 0.8680089 0.6422977 0.8189
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7522698 0.7698795
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7397113 0.798117 0.5374385
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01796977 0.03705653
# Low.cor.X
# if (glb_is_classification && glb_is_binomial)
# indep_vars_vctr <- subset(glb_feats_df, is.na(cor.high.X) &
# is.ConditionalX.y &
# (exclude.as.feat != 1))[, "id"] else
indep_vars <- subset(glb_feats_df, is.na(cor.high.X) & !nzv &
(exclude.as.feat != 1))[, "id"]
indep_vars <- myadjust_interaction_feats(indep_vars)
ret_lst <- myfit_mdl(mdl_specs_lst=myinit_mdl_specs_lst(mdl_specs_lst=list(
id.prefix="Low.cor.X",
type=glb_model_type, trainControl.method="repeatedcv",
trainControl.number=glb_rcv_n_folds, trainControl.repeats=glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method="glmnet")),
indep_vars=indep_vars, rsp_var=glb_rsp_var,
fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df)
## [1] "fitting model: Low.cor.X.glmnet"
## [1] " indep_vars: biddable,spdiff.cut.fctr,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,storage.fctr,D.chrs.pnct11.n.log,startprice.dgt2.is9,color.fctr,prdl.my.fctr,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.root2,prdl.my.fctr:.clusterid.fctr"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.775, lambda = 0.00124 on full training set
## Length Class Mode
## a0 86 -none- numeric
## beta 5332 dgCMatrix S4
## df 86 -none- numeric
## dim 2 -none- numeric
## lambda 86 -none- numeric
## dev.ratio 86 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 62 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept)
## 0.28483910
## .rnorm
## -0.02167279
## D.chrs.pnct11.n.log
## 0.40659853
## D.ratio.weight.sum.wrds.n
## -0.11673547
## D.terms.post.stop.n.log
## -0.04986918
## D.weight.sum.stem.stop.Ratio
## -1.64844144
## D.wrds.stop.n.log
## -0.06590812
## biddable
## 2.44322986
## cellular.fctrUnknown
## -1.42750817
## color.fctrGold
## 0.05191392
## color.fctrSpace Gray
## -0.31389140
## color.fctrUnknown
## 0.32139639
## color.fctrWhite
## -0.14084948
## condition.fctrFor parts or not working
## -0.63820054
## condition.fctrManufacturer refurbished
## -1.03703740
## condition.fctrNew other (see details)
## 0.53706086
## condition.fctrSeller refurbished
## -0.92779447
## prdl.my.fctriPad1
## -0.73094246
## prdl.my.fctriPad2
## -0.50827810
## prdl.my.fctriPad3
## 0.09236029
## prdl.my.fctriPad4
## 1.02122755
## prdl.my.fctriPadAir
## 1.27964442
## prdl.my.fctriPadAir2
## 1.73963473
## prdl.my.fctriPadmini
## -0.45817873
## prdl.my.fctriPadmini2
## 1.07559291
## prdl.my.fctriPadmini3
## 0.58081997
## spdiff.cut.fctr(-100,-10]
## 2.03718267
## spdiff.cut.fctr(-10,-1]
## 3.78016051
## spdiff.cut.fctr(-1,0]
## 4.91900841
## spdiff.cut.fctr(0,1]
## 4.02364901
## spdiff.cut.fctr(1,10]
## 4.05473201
## spdiff.cut.fctr(10,100]
## 3.51590467
## spdiff.cut.fctr(100,1e+03]
## 0.83208831
## sprice.root2
## -0.17520239
## startprice.dcm2.is9
## -0.37526422
## startprice.dgt1.is9
## -0.12236933
## startprice.dgt2.is9
## 0.12473613
## storage.fctr16
## -0.10386074
## storage.fctr64
## 0.19776093
## storage.fctrUnknown
## 1.37356185
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.75846077
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.47363807
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.23980635
## prdl.my.fctriPad4:.clusterid.fctr2
## -1.15493595
## prdl.my.fctriPadAir:.clusterid.fctr2
## -0.30219482
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.59647290
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.71399278
## prdl.my.fctriPad1:.clusterid.fctr3
## -0.74280799
## prdl.my.fctriPad4:.clusterid.fctr3
## -3.99203955
## [1] "max lambda < lambdaOpt:"
## (Intercept)
## 0.30739060
## .rnorm
## -0.02307603
## D.chrs.pnct11.n.log
## 0.41194798
## D.ratio.weight.sum.wrds.n
## -0.11841828
## D.terms.post.stop.n.log
## -0.04857498
## D.weight.sum.stem.stop.Ratio
## -1.70659855
## D.wrds.stop.n.log
## -0.07092480
## biddable
## 2.45597112
## cellular.fctrUnknown
## -1.44850328
## color.fctrGold
## 0.06040873
## color.fctrSpace Gray
## -0.31733631
## color.fctrUnknown
## 0.32580290
## color.fctrWhite
## -0.14400741
## condition.fctrFor parts or not working
## -0.64810440
## condition.fctrManufacturer refurbished
## -1.05310177
## condition.fctrNew other (see details)
## 0.54221686
## condition.fctrSeller refurbished
## -0.94083418
## prdl.my.fctriPad1
## -0.72962954
## prdl.my.fctriPad2
## -0.50283877
## prdl.my.fctriPad3
## 0.10518937
## prdl.my.fctriPad4
## 1.05514873
## prdl.my.fctriPadAir
## 1.31094762
## prdl.my.fctriPadAir2
## 1.76759552
## prdl.my.fctriPadmini
## -0.45080046
## prdl.my.fctriPadmini2
## 1.10294883
## prdl.my.fctriPadmini3
## 0.60534029
## spdiff.cut.fctr(-100,-10]
## 2.07034040
## spdiff.cut.fctr(-10,-1]
## 3.81948497
## spdiff.cut.fctr(-1,0]
## 4.97713395
## spdiff.cut.fctr(0,1]
## 4.07618809
## spdiff.cut.fctr(1,10]
## 4.09721806
## spdiff.cut.fctr(10,100]
## 3.55524679
## spdiff.cut.fctr(100,1e+03]
## 0.86203115
## sprice.root2
## -0.17628994
## startprice.dcm2.is9
## -0.38089328
## startprice.dgt1.is9
## -0.12199526
## startprice.dgt2.is9
## 0.12986601
## storage.fctr16
## -0.10644192
## storage.fctr64
## 0.19978492
## storage.fctrUnknown
## 1.40216390
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.77627886
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.48242024
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.24204519
## prdl.my.fctriPad4:.clusterid.fctr2
## -1.18680995
## prdl.my.fctriPadAir:.clusterid.fctr2
## -0.31435860
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.60900002
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.72474486
## prdl.my.fctriPad1:.clusterid.fctr3
## -0.75028690
## prdl.my.fctriPad4:.clusterid.fctr3
## -4.10529031
## sold.fctr sold.fctr.predict.Low.cor.X.glmnet.N
## 1 N 493
## 2 Y 85
## sold.fctr.predict.Low.cor.X.glmnet.Y
## 1 55
## 2 387
## Prediction
## Reference N Y
## N 493 55
## Y 85 387
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.627451e-01 7.227357e-01 8.400893e-01 8.832827e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 3.342931e-109 1.424808e-02
## sold.fctr sold.fctr.predict.Low.cor.X.glmnet.N
## 1 N 313
## 2 Y 58
## sold.fctr.predict.Low.cor.X.glmnet.Y
## 1 134
## 2 325
## Prediction
## Reference N Y
## N 313 134
## Y 58 325
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.686747e-01 5.411011e-01 7.384586e-01 7.969687e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 5.056117e-43 6.209575e-08
## id
## 1 Low.cor.X.glmnet
## feats
## 1 biddable,spdiff.cut.fctr,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,storage.fctr,D.chrs.pnct11.n.log,startprice.dgt2.is9,color.fctr,prdl.my.fctr,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.root2,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 2.951 0.117
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8597751 0.899635 0.8199153 0.9329264
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.5 0.8468271 0.8349657
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8400893 0.8832827 0.6666179
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7801532 0.8187919 0.7415144 0.8727052
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7719715 0.7686747
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7384586 0.7969687 0.5411011
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.009378705 0.01938402
rm(ret_lst)
glb_chunks_df <- myadd_chunk(glb_chunks_df, "fit.models", major.inc=FALSE)
## label step_major step_minor label_minor bgn end elapsed
## 10 fit.models 6 0 0 311.142 374.177 63.035
## 11 fit.models 6 1 1 374.177 NA NA
fit.models_1_chunk_df <- myadd_chunk(NULL, "fit.models_1_bgn", label.minor="setup")
## label step_major step_minor label_minor bgn end elapsed
## 1 fit.models_1_bgn 1 0 setup 384.614 NA NA
#stop(here"); glb_to_sav(); all.equal(glb_models_df, sav_models_df)
topindep_var <- NULL; interact_vars <- NULL;
for (mdl_id_pfx in names(glb_mdl_family_lst)) {
fit.models_1_chunk_df <- myadd_chunk(fit.models_1_chunk_df,
paste0("fit.models_1_", mdl_id_pfx), major.inc = TRUE,
label.minor = "setup")
indep_vars <- NULL;
if (grepl("\\.Interact", mdl_id_pfx)) {
if (is.null(topindep_var) && is.null(interact_vars)) {
# select best glmnet model upto now
dsp_models_df <- orderBy(model_sel_frmla <- get_model_sel_frmla(),
glb_models_df)
dsp_models_df <- subset(dsp_models_df,
grepl(".glmnet", id, fixed = TRUE))
bst_mdl_id <- dsp_models_df$id[1]
mdl_id_pfx <-
paste(c(head(unlist(strsplit(bst_mdl_id, "[.]")), -1), "Interact"),
collapse=".")
# select most importance feature
if (is.null(bst_featsimp_df <-
myget_feats_importance(glb_models_lst[[bst_mdl_id]]))) {
warning("Base model for RFE.Interact: ", bst_mdl_id,
" has no important features")
next
}
topindep_ix <- 1
while (is.null(topindep_var) && (topindep_ix <= nrow(bst_featsimp_df))) {
topindep_var <- row.names(bst_featsimp_df)[topindep_ix]
if (grepl(".fctr", topindep_var, fixed=TRUE))
topindep_var <-
paste0(unlist(strsplit(topindep_var, ".fctr"))[1], ".fctr")
if (topindep_var %in% names(glb_interaction_only_feats_lst)) {
topindep_var <- NULL; topindep_ix <- topindep_ix + 1
} else break
}
# select features with importance > max(10, importance of .rnorm) & is not highest
# combine factor dummy features to just the factor feature
if (length(pos_rnorm <-
grep(".rnorm", row.names(bst_featsimp_df), fixed=TRUE)) > 0)
imp_rnorm <- bst_featsimp_df[pos_rnorm, 1] else
imp_rnorm <- NA
importance_cutoff <- max(10, imp_rnorm, na.rm=TRUE)
interact_vars <-
tail(row.names(subset(bst_featsimp_df,
importance > importance_cutoff)), -1)
if (length(interact_vars) > 0) {
interact_vars <-
myadjust_interaction_feats(myextract_actual_feats(interact_vars))
interact_vars <-
interact_vars[!grepl(topindep_var, interact_vars, fixed=TRUE)]
}
### bid0_sp only
# interact_vars <- c(
# "biddable", "D.ratio.sum.TfIdf.wrds.n", "D.TfIdf.sum.stem.stop.Ratio", "D.sum.TfIdf",
# "D.TfIdf.sum.post.stop", "D.TfIdf.sum.post.stem", "D.ratio.wrds.stop.n.wrds.n", "D.chrs.uppr.n.log",
# "D.chrs.n.log", "color.fctr"
# # , "condition.fctr", "prdl.my.descr.fctr"
# )
# interact_vars <- setdiff(interact_vars, c("startprice.dgt2.is9", "color.fctr"))
###
indep_vars <- myextract_actual_feats(row.names(bst_featsimp_df))
indep_vars <- setdiff(indep_vars, topindep_var)
if (length(interact_vars) > 0) {
indep_vars <-
setdiff(indep_vars, myextract_actual_feats(interact_vars))
indep_vars <- c(indep_vars,
paste(topindep_var, setdiff(interact_vars, topindep_var),
sep = "*"))
} else indep_vars <- union(indep_vars, topindep_var)
}
}
if (is.null(indep_vars))
indep_vars <- glb_mdl_feats_lst[[mdl_id_pfx]]
if (is.null(indep_vars) && grepl("RFE\\.", mdl_id_pfx))
indep_vars <- myextract_actual_feats(predictors(rfe_fit_results))
if (is.null(indep_vars))
indep_vars <- subset(glb_feats_df, !nzv & (exclude.as.feat != 1))[, "id"]
if (grepl("^%<d-%", indep_vars)) {
#stop(here")
indep_vars <-
eval(parse(text = str_trim(unlist(strsplit(indep_vars, "%<d-%"))[2])))
}
indep_vars <- myadjust_interaction_feats(indep_vars)
if (grepl("\\.Interact", mdl_id_pfx)) {
# if (method != tail(unlist(strsplit(bst_mdl_id, "[.]")), 1)) next
if (is.null(glb_mdl_family_lst[[mdl_id_pfx]])) {
if (!is.null(glb_mdl_family_lst[["Best.Interact"]]))
glb_mdl_family_lst[[mdl_id_pfx]] <-
glb_mdl_family_lst[["Best.Interact"]]
}
}
if (!is.null(glbObsFitOutliers[[mdl_id_pfx]])) {
fitobs_df <- glb_fitobs_df[!(glb_fitobs_df[, glb_id_var] %in%
glbObsFitOutliers[[mdl_id_pfx]]), ]
} else fitobs_df <- glb_fitobs_df
if (is.null(glb_mdl_family_lst[[mdl_id_pfx]]))
mdl_methods <- glbMdlMethods else
mdl_methods <- glb_mdl_family_lst[[mdl_id_pfx]]
for (method in mdl_methods) {
if (method %in% c("rpart", "rf")) {
# rpart: fubar's the tree
# rf: skip the scenario w/ .rnorm for speed
indep_vars <- setdiff(indep_vars, c(".rnorm"))
#mdl_id <- paste0(mdl_id_pfx, ".no.rnorm")
}
fit.models_1_chunk_df <- myadd_chunk(fit.models_1_chunk_df,
paste0("fit.models_1_", mdl_id_pfx), major.inc = FALSE,
label.minor = method)
ret_lst <-
myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = mdl_id_pfx,
type = glb_model_type, tune.df = glb_tune_models_df,
trainControl.method = "repeatedcv",
trainControl.number = glb_rcv_n_folds,
trainControl.repeats = glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
#trainControl.allowParallel = FALSE,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method = method)),
indep_vars = indep_vars, rsp_var = glb_rsp_var,
fit_df = fitobs_df, OOB_df = glb_OOBobs_df)
}
}
## label step_major step_minor label_minor bgn end
## 1 fit.models_1_bgn 1 0 setup 384.614 384.624
## 2 fit.models_1_CSM.X 2 0 setup 384.624 NA
## elapsed
## 1 0.01
## 2 NA
## label step_major step_minor label_minor bgn end
## 2 fit.models_1_CSM.X 2 0 setup 384.624 384.637
## 3 fit.models_1_CSM.X 2 1 glm 384.637 NA
## elapsed
## 2 0.013
## 3 NA
## [1] "fitting model: CSM.X.glm"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## + Fold1.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep1: parameter=none
## + Fold2.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep1: parameter=none
## + Fold3.Rep1: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep1: parameter=none
## + Fold1.Rep2: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep2: parameter=none
## + Fold2.Rep2: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep2: parameter=none
## + Fold3.Rep2: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep2: parameter=none
## + Fold1.Rep3: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep3: parameter=none
## + Fold2.Rep3: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep3: parameter=none
## + Fold3.Rep3: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep3: parameter=none
## Aggregating results
## Fitting final model on full training set
##
## Call:
## NULL
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.9951 -0.4610 -0.0689 0.3072 3.5806
##
## Coefficients: (28 not defined because of singularities)
## Estimate Std. Error z value
## (Intercept) -2.534e+01 3.036e+01 -0.835
## .rnorm -7.376e-04 1.069e-01 -0.007
## D.chrs.n.log -6.853e+00 4.527e+00 -1.514
## D.chrs.pnct11.n.log 7.259e-01 4.189e-01 1.733
## D.chrs.pnct13.n.log 1.522e-01 4.156e-01 0.366
## D.chrs.uppr.n.log 4.708e+00 4.188e+00 1.124
## D.ratio.weight.sum.wrds.n 3.187e-01 3.177e-01 1.003
## D.ratio.wrds.stop.n.wrds.n -1.009e+01 4.057e+00 -2.486
## D.terms.post.stem.n.log 2.404e+01 1.136e+01 2.116
## D.terms.post.stop.n.log -3.068e+01 1.133e+01 -2.707
## D.weight.post.stem.sum -8.044e+00 5.488e+00 -1.466
## D.weight.post.stop.sum 7.495e+00 5.296e+00 1.415
## D.weight.sum NA NA NA
## D.weight.sum.stem.stop.Ratio 3.708e+01 3.067e+01 1.209
## D.wrds.n.log 7.777e+00 2.586e+00 3.007
## D.wrds.stop.n.log 3.127e-01 7.062e-01 0.443
## D.wrds.unq.n.log NA NA NA
## cellular.fctr1 -2.012e-01 3.624e-01 -0.555
## cellular.fctrUnknown -1.939e+00 6.540e-01 -2.965
## color.fctrGold 2.206e-01 7.308e-01 0.302
## `color.fctrSpace Gray` -3.252e-01 4.348e-01 -0.748
## color.fctrUnknown 3.218e-01 2.989e-01 1.077
## color.fctrWhite -7.425e-02 3.317e-01 -0.224
## `condition.fctrFor parts or not working` -1.081e+00 4.664e-01 -2.318
## `condition.fctrManufacturer refurbished` -1.430e+00 8.480e-01 -1.686
## condition.fctrNew 1.071e-01 4.185e-01 0.256
## `condition.fctrNew other (see details)` 6.522e-01 5.885e-01 1.108
## `condition.fctrSeller refurbished` -1.198e+00 4.871e-01 -2.459
## prdl.my.fctriPad1 -1.049e+00 7.238e-01 -1.449
## prdl.my.fctriPad2 -6.181e-01 6.314e-01 -0.979
## prdl.my.fctriPad3 3.197e-02 6.661e-01 0.048
## prdl.my.fctriPad4 1.326e+00 7.339e-01 1.807
## prdl.my.fctriPadAir 1.407e+00 7.298e-01 1.928
## prdl.my.fctriPadAir2 1.620e+00 8.115e-01 1.997
## prdl.my.fctriPadmini -8.001e-01 6.171e-01 -1.296
## prdl.my.fctriPadmini2 9.873e-01 7.530e-01 1.311
## prdl.my.fctriPadmini3 4.599e-01 8.289e-01 0.555
## `spdiff.cut.fctr(-100,-10]` 2.904e+00 1.080e+00 2.688
## `spdiff.cut.fctr(-10,-1]` 4.960e+00 1.152e+00 4.306
## `spdiff.cut.fctr(-1,0]` 5.233e+00 1.445e+00 3.622
## `spdiff.cut.fctr(0,1]` 3.539e+00 1.500e+00 2.360
## `spdiff.cut.fctr(1,10]` 5.006e+00 1.134e+00 4.413
## `spdiff.cut.fctr(10,100]` 4.148e+00 1.108e+00 3.745
## `spdiff.cut.fctr(100,1e+03]` 4.907e-01 1.455e+00 0.337
## biddable 2.989e+00 1.122e+00 2.663
## sprice.d20nexp -2.334e+00 3.998e+00 -0.584
## sprice.log10 -9.107e-01 1.360e+00 -0.670
## sprice.root2 -8.983e-02 1.970e-01 -0.456
## startprice.dcm1.is9 -4.864e-01 4.160e-01 -1.169
## startprice.dcm2.is9 -6.291e-02 4.047e-01 -0.155
## startprice.dgt1.is9 3.646e-02 2.983e-01 0.122
## startprice.dgt2.is9 1.840e-02 3.319e-01 0.055
## storage.fctr16 -2.351e-01 7.740e-01 -0.304
## storage.fctr32 -3.624e-02 7.813e-01 -0.046
## storage.fctr64 1.995e-01 7.631e-01 0.261
## storage.fctrUnknown 1.764e+00 9.936e-01 1.775
## `cellular.fctr0:carrier.fctrNone` NA NA NA
## `cellular.fctr1:carrier.fctrNone` NA NA NA
## `cellular.fctrUnknown:carrier.fctrNone` NA NA NA
## `cellular.fctr0:carrier.fctrOther` NA NA NA
## `cellular.fctr1:carrier.fctrOther` NA NA NA
## `cellular.fctrUnknown:carrier.fctrOther` NA NA NA
## `cellular.fctr0:carrier.fctrSprint` NA NA NA
## `cellular.fctr1:carrier.fctrSprint` 1.038e+00 7.864e-01 1.320
## `cellular.fctrUnknown:carrier.fctrSprint` NA NA NA
## `cellular.fctr0:carrier.fctrT-Mobile` NA NA NA
## `cellular.fctr1:carrier.fctrT-Mobile` -4.095e-02 1.306e+00 -0.031
## `cellular.fctrUnknown:carrier.fctrT-Mobile` NA NA NA
## `cellular.fctr0:carrier.fctrUnknown` NA NA NA
## `cellular.fctr1:carrier.fctrUnknown` -1.561e-01 6.324e-01 -0.247
## `cellular.fctrUnknown:carrier.fctrUnknown` NA NA NA
## `cellular.fctr0:carrier.fctrVerizon` NA NA NA
## `cellular.fctr1:carrier.fctrVerizon` 4.866e-01 5.143e-01 0.946
## `cellular.fctrUnknown:carrier.fctrVerizon` NA NA NA
## `prdl.my.fctrUnknown:.clusterid.fctr2` 7.660e-01 8.958e-01 0.855
## `prdl.my.fctriPad1:.clusterid.fctr2` -1.163e+00 8.743e-01 -1.330
## `prdl.my.fctriPad2:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPad3:.clusterid.fctr2` 1.287e-01 9.694e-01 0.133
## `prdl.my.fctriPad4:.clusterid.fctr2` -2.008e+00 1.349e+00 -1.489
## `prdl.my.fctriPadAir:.clusterid.fctr2` -2.493e-01 9.445e-01 -0.264
## `prdl.my.fctriPadAir2:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPadmini:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPadmini2:.clusterid.fctr2` -6.533e-01 1.497e+00 -0.436
## `prdl.my.fctriPadmini3:.clusterid.fctr2` NA NA NA
## `prdl.my.fctrUnknown:.clusterid.fctr3` 2.297e-01 1.322e+00 0.174
## `prdl.my.fctriPad1:.clusterid.fctr3` -1.433e+00 9.152e-01 -1.566
## `prdl.my.fctriPad2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPad3:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPad4:.clusterid.fctr3` -1.866e+01 1.328e+03 -0.014
## `prdl.my.fctriPadAir:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadAir2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini3:.clusterid.fctr3` NA NA NA
## `spdiff.cut.fctr(-100,-10]:biddable` -7.490e-01 1.156e+00 -0.648
## `spdiff.cut.fctr(-10,-1]:biddable` -1.593e+00 1.288e+00 -1.237
## `spdiff.cut.fctr(-1,0]:biddable` 1.313e+01 7.667e+02 0.017
## `spdiff.cut.fctr(0,1]:biddable` NA NA NA
## `spdiff.cut.fctr(1,10]:biddable` -4.988e-01 1.384e+00 -0.360
## `spdiff.cut.fctr(10,100]:biddable` 6.409e-01 1.369e+00 0.468
## `spdiff.cut.fctr(100,1e+03]:biddable` 2.024e+00 1.887e+00 1.073
## Pr(>|z|)
## (Intercept) 0.403975
## .rnorm 0.994495
## D.chrs.n.log 0.130055
## D.chrs.pnct11.n.log 0.083098 .
## D.chrs.pnct13.n.log 0.714250
## D.chrs.uppr.n.log 0.260846
## D.ratio.weight.sum.wrds.n 0.315694
## D.ratio.wrds.stop.n.wrds.n 0.012924 *
## D.terms.post.stem.n.log 0.034346 *
## D.terms.post.stop.n.log 0.006791 **
## D.weight.post.stem.sum 0.142671
## D.weight.post.stop.sum 0.157002
## D.weight.sum NA
## D.weight.sum.stem.stop.Ratio 0.226733
## D.wrds.n.log 0.002637 **
## D.wrds.stop.n.log 0.657965
## D.wrds.unq.n.log NA
## cellular.fctr1 0.578864
## cellular.fctrUnknown 0.003029 **
## color.fctrGold 0.762739
## `color.fctrSpace Gray` 0.454569
## color.fctrUnknown 0.281600
## color.fctrWhite 0.822863
## `condition.fctrFor parts or not working` 0.020463 *
## `condition.fctrManufacturer refurbished` 0.091711 .
## condition.fctrNew 0.798084
## `condition.fctrNew other (see details)` 0.267743
## `condition.fctrSeller refurbished` 0.013931 *
## prdl.my.fctriPad1 0.147243
## prdl.my.fctriPad2 0.327600
## prdl.my.fctriPad3 0.961723
## prdl.my.fctriPad4 0.070814 .
## prdl.my.fctriPadAir 0.053895 .
## prdl.my.fctriPadAir2 0.045875 *
## prdl.my.fctriPadmini 0.194831
## prdl.my.fctriPadmini2 0.189801
## prdl.my.fctriPadmini3 0.579019
## `spdiff.cut.fctr(-100,-10]` 0.007186 **
## `spdiff.cut.fctr(-10,-1]` 1.66e-05 ***
## `spdiff.cut.fctr(-1,0]` 0.000292 ***
## `spdiff.cut.fctr(0,1]` 0.018267 *
## `spdiff.cut.fctr(1,10]` 1.02e-05 ***
## `spdiff.cut.fctr(10,100]` 0.000180 ***
## `spdiff.cut.fctr(100,1e+03]` 0.735883
## biddable 0.007739 **
## sprice.d20nexp 0.559333
## sprice.log10 0.503165
## sprice.root2 0.648412
## startprice.dcm1.is9 0.242249
## startprice.dcm2.is9 0.876458
## startprice.dgt1.is9 0.902723
## startprice.dgt2.is9 0.955785
## storage.fctr16 0.761374
## storage.fctr32 0.963005
## storage.fctr64 0.793745
## storage.fctrUnknown 0.075907 .
## `cellular.fctr0:carrier.fctrNone` NA
## `cellular.fctr1:carrier.fctrNone` NA
## `cellular.fctrUnknown:carrier.fctrNone` NA
## `cellular.fctr0:carrier.fctrOther` NA
## `cellular.fctr1:carrier.fctrOther` NA
## `cellular.fctrUnknown:carrier.fctrOther` NA
## `cellular.fctr0:carrier.fctrSprint` NA
## `cellular.fctr1:carrier.fctrSprint` 0.186775
## `cellular.fctrUnknown:carrier.fctrSprint` NA
## `cellular.fctr0:carrier.fctrT-Mobile` NA
## `cellular.fctr1:carrier.fctrT-Mobile` 0.974986
## `cellular.fctrUnknown:carrier.fctrT-Mobile` NA
## `cellular.fctr0:carrier.fctrUnknown` NA
## `cellular.fctr1:carrier.fctrUnknown` 0.805038
## `cellular.fctrUnknown:carrier.fctrUnknown` NA
## `cellular.fctr0:carrier.fctrVerizon` NA
## `cellular.fctr1:carrier.fctrVerizon` 0.344063
## `cellular.fctrUnknown:carrier.fctrVerizon` NA
## `prdl.my.fctrUnknown:.clusterid.fctr2` 0.392474
## `prdl.my.fctriPad1:.clusterid.fctr2` 0.183371
## `prdl.my.fctriPad2:.clusterid.fctr2` NA
## `prdl.my.fctriPad3:.clusterid.fctr2` 0.894403
## `prdl.my.fctriPad4:.clusterid.fctr2` 0.136522
## `prdl.my.fctriPadAir:.clusterid.fctr2` 0.791807
## `prdl.my.fctriPadAir2:.clusterid.fctr2` NA
## `prdl.my.fctriPadmini:.clusterid.fctr2` NA
## `prdl.my.fctriPadmini2:.clusterid.fctr2` 0.662523
## `prdl.my.fctriPadmini3:.clusterid.fctr2` NA
## `prdl.my.fctrUnknown:.clusterid.fctr3` 0.862077
## `prdl.my.fctriPad1:.clusterid.fctr3` 0.117291
## `prdl.my.fctriPad2:.clusterid.fctr3` NA
## `prdl.my.fctriPad3:.clusterid.fctr3` NA
## `prdl.my.fctriPad4:.clusterid.fctr3` 0.988790
## `prdl.my.fctriPadAir:.clusterid.fctr3` NA
## `prdl.my.fctriPadAir2:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini2:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini3:.clusterid.fctr3` NA
## `spdiff.cut.fctr(-100,-10]:biddable` 0.517090
## `spdiff.cut.fctr(-10,-1]:biddable` 0.216143
## `spdiff.cut.fctr(-1,0]:biddable` 0.986335
## `spdiff.cut.fctr(0,1]:biddable` NA
## `spdiff.cut.fctr(1,10]:biddable` 0.718621
## `spdiff.cut.fctr(10,100]:biddable` 0.639629
## `spdiff.cut.fctr(100,1e+03]:biddable` 0.283336
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1405.3 on 1017 degrees of freedom
## Residual deviance: 622.0 on 945 degrees of freedom
## AIC: 768
##
## Number of Fisher Scoring iterations: 17
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## sold.fctr sold.fctr.predict.CSM.X.glm.N sold.fctr.predict.CSM.X.glm.Y
## 1 N 473 75
## 2 Y 63 407
## Prediction
## Reference N Y
## N 473 75
## Y 63 407
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.644401e-01 7.277737e-01 8.418654e-01 8.848822e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 1.196932e-109 3.490764e-01
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## sold.fctr sold.fctr.predict.CSM.X.glm.N sold.fctr.predict.CSM.X.glm.Y
## 1 N 368 79
## 2 Y 98 285
## Prediction
## Reference N Y
## N 368 79
## Y 98 285
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.867470e-01 5.694138e-01 7.572842e-01 8.141569e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 3.470669e-50 1.760675e-01
## id
## 1 CSM.X.glm
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 1 3.385 0.235
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8654721 0.9032847 0.8276596 0.9415592
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.855042 0.8264355
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8418654 0.8848822 0.6495141
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7836958 0.8232662 0.7441253 0.8705557
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.5 0.7630522 0.786747
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7572842 0.8141569 0.5694138
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01401451 0.02849804
## label step_major step_minor label_minor bgn end
## 3 fit.models_1_CSM.X 2 1 glm 384.637 392.186
## 4 fit.models_1_CSM.X 2 2 bayesglm 392.187 NA
## elapsed
## 3 7.549
## 4 NA
## [1] "fitting model: CSM.X.bayesglm"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Loading required package: arm
## Loading required package: MASS
##
## Attaching package: 'MASS'
##
## The following object is masked from 'package:dplyr':
##
## select
##
## Loading required package: lme4
##
## arm (Version 1.8-6, built: 2015-7-7)
##
## Working directory is /Users/bbalaji-2012/Documents/Work/Courses/MIT/Analytics_Edge_15_071x/Assignments/Kaggle_eBay_iPads
## + Fold1.Rep1: parameter=none
## - Fold1.Rep1: parameter=none
## + Fold2.Rep1: parameter=none
## - Fold2.Rep1: parameter=none
## + Fold3.Rep1: parameter=none
## - Fold3.Rep1: parameter=none
## + Fold1.Rep2: parameter=none
## - Fold1.Rep2: parameter=none
## + Fold2.Rep2: parameter=none
## - Fold2.Rep2: parameter=none
## + Fold3.Rep2: parameter=none
## - Fold3.Rep2: parameter=none
## + Fold1.Rep3: parameter=none
## - Fold1.Rep3: parameter=none
## + Fold2.Rep3: parameter=none
## - Fold2.Rep3: parameter=none
## + Fold3.Rep3: parameter=none
## - Fold3.Rep3: parameter=none
## Aggregating results
## Fitting final model on full training set
##
## Call:
## NULL
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.9644 -0.5162 -0.1415 0.3313 3.1116
##
## Coefficients:
## Estimate Std. Error z value
## (Intercept) 4.992425 5.392851 0.926
## .rnorm -0.014947 0.100521 -0.149
## D.chrs.n.log -0.109506 0.443933 -0.247
## D.chrs.pnct11.n.log 0.471843 0.357723 1.319
## D.chrs.pnct13.n.log -0.128948 0.364241 -0.354
## D.chrs.uppr.n.log -0.002766 0.456843 -0.006
## D.ratio.weight.sum.wrds.n -0.044275 0.262600 -0.169
## D.ratio.wrds.stop.n.wrds.n -1.696522 1.990751 -0.852
## D.terms.post.stem.n.log -0.168282 0.838724 -0.201
## D.terms.post.stop.n.log -0.514153 0.879693 -0.584
## D.weight.post.stem.sum -0.084764 0.385173 -0.220
## D.weight.post.stop.sum -0.029820 0.366278 -0.081
## D.weight.sum -0.084764 0.385173 -0.220
## D.weight.sum.stem.stop.Ratio -2.469281 4.474959 -0.552
## D.wrds.n.log 0.719823 0.830014 0.867
## D.wrds.stop.n.log 0.098319 0.441955 0.222
## D.wrds.unq.n.log -0.168282 0.838724 -0.201
## cellular.fctr1 0.215160 1.305972 0.165
## cellular.fctrUnknown -0.696642 1.697430 -0.410
## color.fctrGold 0.153540 0.643808 0.238
## `color.fctrSpace Gray` -0.340914 0.396746 -0.859
## color.fctrUnknown 0.335023 0.274929 1.219
## color.fctrWhite -0.147517 0.304784 -0.484
## `condition.fctrFor parts or not working` -0.710070 0.411105 -1.727
## `condition.fctrManufacturer refurbished` -1.015964 0.752348 -1.350
## condition.fctrNew 0.025220 0.382932 0.066
## `condition.fctrNew other (see details)` 0.622987 0.520324 1.197
## `condition.fctrSeller refurbished` -0.960331 0.441851 -2.173
## prdl.my.fctriPad1 -1.037679 0.563038 -1.843
## prdl.my.fctriPad2 -0.658665 0.486615 -1.354
## prdl.my.fctriPad3 -0.057819 0.518200 -0.112
## prdl.my.fctriPad4 0.885129 0.575678 1.538
## prdl.my.fctriPadAir 1.029870 0.564723 1.824
## prdl.my.fctriPadAir2 1.440673 0.613541 2.348
## prdl.my.fctriPadmini -0.689411 0.474225 -1.454
## prdl.my.fctriPadmini2 0.888959 0.592422 1.501
## prdl.my.fctriPadmini3 0.425890 0.660073 0.645
## `spdiff.cut.fctr(-100,-10]` 1.870669 0.540346 3.462
## `spdiff.cut.fctr(-10,-1]` 3.705475 0.618228 5.994
## `spdiff.cut.fctr(-1,0]` 4.208958 0.975860 4.313
## `spdiff.cut.fctr(0,1]` 1.545049 1.823379 0.847
## `spdiff.cut.fctr(1,10]` 3.675157 0.608006 6.045
## `spdiff.cut.fctr(10,100]` 3.003757 0.565183 5.315
## `spdiff.cut.fctr(100,1e+03]` -0.213175 0.876823 -0.243
## biddable 2.008265 0.540727 3.714
## sprice.d20nexp -0.750446 1.775518 -0.423
## sprice.log10 -0.474807 0.472319 -1.005
## sprice.root2 -0.129197 0.080515 -1.605
## startprice.dcm1.is9 -0.418773 0.374939 -1.117
## startprice.dcm2.is9 -0.102623 0.370040 -0.277
## startprice.dgt1.is9 0.059102 0.274008 0.216
## startprice.dgt2.is9 0.061299 0.306635 0.200
## storage.fctr16 -0.317515 0.570788 -0.556
## storage.fctr32 -0.170821 0.584616 -0.292
## storage.fctr64 0.093364 0.573550 0.163
## storage.fctrUnknown 1.402447 0.771005 1.819
## `cellular.fctr0:carrier.fctrNone` 0.368068 1.301730 0.283
## `cellular.fctr1:carrier.fctrNone` 0.000000 2.500000 0.000
## `cellular.fctrUnknown:carrier.fctrNone` 0.000000 2.500000 0.000
## `cellular.fctr0:carrier.fctrOther` 0.000000 2.500000 0.000
## `cellular.fctr1:carrier.fctrOther` 0.000000 2.500000 0.000
## `cellular.fctrUnknown:carrier.fctrOther` 0.000000 2.500000 0.000
## `cellular.fctr0:carrier.fctrSprint` 0.000000 2.500000 0.000
## `cellular.fctr1:carrier.fctrSprint` 0.964904 0.713342 1.353
## `cellular.fctrUnknown:carrier.fctrSprint` 0.000000 2.500000 0.000
## `cellular.fctr0:carrier.fctrT-Mobile` 0.000000 2.500000 0.000
## `cellular.fctr1:carrier.fctrT-Mobile` -0.271792 1.025430 -0.265
## `cellular.fctrUnknown:carrier.fctrT-Mobile` 0.000000 2.500000 0.000
## `cellular.fctr0:carrier.fctrUnknown` 0.000000 2.500000 0.000
## `cellular.fctr1:carrier.fctrUnknown` -0.198461 0.547046 -0.363
## `cellular.fctrUnknown:carrier.fctrUnknown` -0.696642 1.697430 -0.410
## `cellular.fctr0:carrier.fctrVerizon` 0.000000 2.500000 0.000
## `cellular.fctr1:carrier.fctrVerizon` 0.313670 0.461955 0.679
## `cellular.fctrUnknown:carrier.fctrVerizon` 0.000000 2.500000 0.000
## `prdl.my.fctrUnknown:.clusterid.fctr2` 0.794118 0.783655 1.013
## `prdl.my.fctriPad1:.clusterid.fctr2` -0.427318 0.741722 -0.576
## `prdl.my.fctriPad2:.clusterid.fctr2` 0.000000 2.500000 0.000
## `prdl.my.fctriPad3:.clusterid.fctr2` 0.295946 0.836562 0.354
## `prdl.my.fctriPad4:.clusterid.fctr2` -0.892319 1.072120 -0.832
## `prdl.my.fctriPadAir:.clusterid.fctr2` -0.128302 0.807275 -0.159
## `prdl.my.fctriPadAir2:.clusterid.fctr2` 0.000000 2.500000 0.000
## `prdl.my.fctriPadmini:.clusterid.fctr2` 0.000000 2.500000 0.000
## `prdl.my.fctriPadmini2:.clusterid.fctr2` -0.311835 1.076712 -0.290
## `prdl.my.fctriPadmini3:.clusterid.fctr2` 0.000000 2.500000 0.000
## `prdl.my.fctrUnknown:.clusterid.fctr3` -0.466405 1.038422 -0.449
## `prdl.my.fctriPad1:.clusterid.fctr3` -0.926064 0.759466 -1.219
## `prdl.my.fctriPad2:.clusterid.fctr3` 0.000000 2.500000 0.000
## `prdl.my.fctriPad3:.clusterid.fctr3` 0.000000 2.500000 0.000
## `prdl.my.fctriPad4:.clusterid.fctr3` -3.193528 1.626670 -1.963
## `prdl.my.fctriPadAir:.clusterid.fctr3` 0.000000 2.500000 0.000
## `prdl.my.fctriPadAir2:.clusterid.fctr3` 0.000000 2.500000 0.000
## `prdl.my.fctriPadmini:.clusterid.fctr3` 0.000000 2.500000 0.000
## `prdl.my.fctriPadmini2:.clusterid.fctr3` 0.000000 2.500000 0.000
## `prdl.my.fctriPadmini3:.clusterid.fctr3` 0.000000 2.500000 0.000
## `spdiff.cut.fctr(-100,-10]:biddable` 0.152722 0.612018 0.250
## `spdiff.cut.fctr(-10,-1]:biddable` -0.441449 0.761004 -0.580
## `spdiff.cut.fctr(-1,0]:biddable` 0.972950 1.744738 0.558
## `spdiff.cut.fctr(0,1]:biddable` 1.545049 1.823379 0.847
## `spdiff.cut.fctr(1,10]:biddable` 0.499781 0.865815 0.577
## `spdiff.cut.fctr(10,100]:biddable` 1.522358 0.841264 1.810
## `spdiff.cut.fctr(100,1e+03]:biddable` 2.258390 1.234891 1.829
## Pr(>|z|)
## (Intercept) 0.354577
## .rnorm 0.881795
## D.chrs.n.log 0.805163
## D.chrs.pnct11.n.log 0.187163
## D.chrs.pnct13.n.log 0.723325
## D.chrs.uppr.n.log 0.995170
## D.ratio.weight.sum.wrds.n 0.866109
## D.ratio.wrds.stop.n.wrds.n 0.394102
## D.terms.post.stem.n.log 0.840980
## D.terms.post.stop.n.log 0.558905
## D.weight.post.stem.sum 0.825818
## D.weight.post.stop.sum 0.935113
## D.weight.sum 0.825818
## D.weight.sum.stem.stop.Ratio 0.581086
## D.wrds.n.log 0.385809
## D.wrds.stop.n.log 0.823952
## D.wrds.unq.n.log 0.840980
## cellular.fctr1 0.869140
## cellular.fctrUnknown 0.681505
## color.fctrGold 0.811503
## `color.fctrSpace Gray` 0.390188
## color.fctrUnknown 0.223005
## color.fctrWhite 0.628382
## `condition.fctrFor parts or not working` 0.084128 .
## `condition.fctrManufacturer refurbished` 0.176890
## condition.fctrNew 0.947488
## `condition.fctrNew other (see details)` 0.231188
## `condition.fctrSeller refurbished` 0.029748 *
## prdl.my.fctriPad1 0.065329 .
## prdl.my.fctriPad2 0.175875
## prdl.my.fctriPad3 0.911159
## prdl.my.fctriPad4 0.124161
## prdl.my.fctriPadAir 0.068202 .
## prdl.my.fctriPadAir2 0.018868 *
## prdl.my.fctriPadmini 0.146012
## prdl.my.fctriPadmini2 0.133472
## prdl.my.fctriPadmini3 0.518787
## `spdiff.cut.fctr(-100,-10]` 0.000536 ***
## `spdiff.cut.fctr(-10,-1]` 2.05e-09 ***
## `spdiff.cut.fctr(-1,0]` 1.61e-05 ***
## `spdiff.cut.fctr(0,1]` 0.396797
## `spdiff.cut.fctr(1,10]` 1.50e-09 ***
## `spdiff.cut.fctr(10,100]` 1.07e-07 ***
## `spdiff.cut.fctr(100,1e+03]` 0.807911
## biddable 0.000204 ***
## sprice.d20nexp 0.672541
## sprice.log10 0.314768
## sprice.root2 0.108575
## startprice.dcm1.is9 0.264033
## startprice.dcm2.is9 0.781527
## startprice.dgt1.is9 0.829227
## startprice.dgt2.is9 0.841553
## storage.fctr16 0.578023
## storage.fctr32 0.770139
## storage.fctr64 0.870690
## storage.fctrUnknown 0.068914 .
## `cellular.fctr0:carrier.fctrNone` 0.777366
## `cellular.fctr1:carrier.fctrNone` 1.000000
## `cellular.fctrUnknown:carrier.fctrNone` 1.000000
## `cellular.fctr0:carrier.fctrOther` 1.000000
## `cellular.fctr1:carrier.fctrOther` 1.000000
## `cellular.fctrUnknown:carrier.fctrOther` 1.000000
## `cellular.fctr0:carrier.fctrSprint` 1.000000
## `cellular.fctr1:carrier.fctrSprint` 0.176167
## `cellular.fctrUnknown:carrier.fctrSprint` 1.000000
## `cellular.fctr0:carrier.fctrT-Mobile` 1.000000
## `cellular.fctr1:carrier.fctrT-Mobile` 0.790970
## `cellular.fctrUnknown:carrier.fctrT-Mobile` 1.000000
## `cellular.fctr0:carrier.fctrUnknown` 1.000000
## `cellular.fctr1:carrier.fctrUnknown` 0.716765
## `cellular.fctrUnknown:carrier.fctrUnknown` 0.681505
## `cellular.fctr0:carrier.fctrVerizon` 1.000000
## `cellular.fctr1:carrier.fctrVerizon` 0.497135
## `cellular.fctrUnknown:carrier.fctrVerizon` 1.000000
## `prdl.my.fctrUnknown:.clusterid.fctr2` 0.310892
## `prdl.my.fctriPad1:.clusterid.fctr2` 0.564537
## `prdl.my.fctriPad2:.clusterid.fctr2` 1.000000
## `prdl.my.fctriPad3:.clusterid.fctr2` 0.723516
## `prdl.my.fctriPad4:.clusterid.fctr2` 0.405243
## `prdl.my.fctriPadAir:.clusterid.fctr2` 0.873722
## `prdl.my.fctriPadAir2:.clusterid.fctr2` 1.000000
## `prdl.my.fctriPadmini:.clusterid.fctr2` 1.000000
## `prdl.my.fctriPadmini2:.clusterid.fctr2` 0.772109
## `prdl.my.fctriPadmini3:.clusterid.fctr2` 1.000000
## `prdl.my.fctrUnknown:.clusterid.fctr3` 0.653325
## `prdl.my.fctriPad1:.clusterid.fctr3` 0.222707
## `prdl.my.fctriPad2:.clusterid.fctr3` 1.000000
## `prdl.my.fctriPad3:.clusterid.fctr3` 1.000000
## `prdl.my.fctriPad4:.clusterid.fctr3` 0.049619 *
## `prdl.my.fctriPadAir:.clusterid.fctr3` 1.000000
## `prdl.my.fctriPadAir2:.clusterid.fctr3` 1.000000
## `prdl.my.fctriPadmini:.clusterid.fctr3` 1.000000
## `prdl.my.fctriPadmini2:.clusterid.fctr3` 1.000000
## `prdl.my.fctriPadmini3:.clusterid.fctr3` 1.000000
## `spdiff.cut.fctr(-100,-10]:biddable` 0.802944
## `spdiff.cut.fctr(-10,-1]:biddable` 0.561856
## `spdiff.cut.fctr(-1,0]:biddable` 0.577085
## `spdiff.cut.fctr(0,1]:biddable` 0.396797
## `spdiff.cut.fctr(1,10]:biddable` 0.563779
## `spdiff.cut.fctr(10,100]:biddable` 0.070357 .
## `spdiff.cut.fctr(100,1e+03]:biddable` 0.067427 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1405.27 on 1017 degrees of freedom
## Residual deviance: 644.98 on 917 degrees of freedom
## AIC: 846.98
##
## Number of Fisher Scoring iterations: 21
## sold.fctr sold.fctr.predict.CSM.X.bayesglm.N
## 1 N 469
## 2 Y 64
## sold.fctr.predict.CSM.X.bayesglm.Y
## 1 79
## 2 406
## Prediction
## Reference N Y
## N 469 79
## Y 64 406
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.595285e-01 7.180383e-01 8.366530e-01 8.803011e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 5.250920e-106 2.417038e-01
## sold.fctr sold.fctr.predict.CSM.X.bayesglm.N
## 1 N 313
## 2 Y 59
## sold.fctr.predict.CSM.X.bayesglm.Y
## 1 134
## 2 324
## Prediction
## Reference N Y
## N 313 134
## Y 59 324
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.674699e-01 5.386259e-01 7.372063e-01 7.958201e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.437313e-42 1.000481e-07
## id
## 1 CSM.X.bayesglm
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 1 5.373 0.408
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8590891 0.9032847 0.8148936 0.9370632
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8502618 0.8293912
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.836653 0.8803011 0.6549643
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7902203 0.8389262 0.7415144 0.872051
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7705113 0.7674699
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7372063 0.7958201 0.5386259
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.009290129 0.01919755
## label step_major step_minor label_minor bgn end
## 4 fit.models_1_CSM.X 2 2 bayesglm 392.187 401.081
## 5 fit.models_1_CSM.X 2 3 glmnet 401.081 NA
## elapsed
## 4 8.894
## 5 NA
## [1] "fitting model: CSM.X.glmnet"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.1, lambda = 0.00577 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: alpha
## Length Class Mode
## a0 100 -none- numeric
## beta 10000 dgCMatrix S4
## df 100 -none- numeric
## dim 2 -none- numeric
## lambda 100 -none- numeric
## dev.ratio 100 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 100 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept)
## 2.397508991
## .rnorm
## -0.013941771
## D.chrs.pnct11.n.log
## 0.402372247
## D.chrs.pnct13.n.log
## -0.049975622
## D.ratio.weight.sum.wrds.n
## -0.055678955
## D.ratio.wrds.stop.n.wrds.n
## -0.033895807
## D.weight.post.stem.sum
## -0.023604659
## D.weight.post.stop.sum
## -0.007405599
## D.weight.sum
## -0.021418370
## D.weight.sum.stem.stop.Ratio
## -1.710221241
## cellular.fctrUnknown
## -0.599622629
## color.fctrGold
## 0.060337617
## color.fctrSpace Gray
## -0.315902340
## color.fctrUnknown
## 0.254898880
## color.fctrWhite
## -0.115711598
## condition.fctrFor parts or not working
## -0.527252513
## condition.fctrManufacturer refurbished
## -1.009203369
## condition.fctrNew
## -0.058478518
## condition.fctrNew other (see details)
## 0.377938778
## condition.fctrSeller refurbished
## -0.861802407
## prdl.my.fctriPad1
## -0.688664048
## prdl.my.fctriPad2
## -0.492075861
## prdl.my.fctriPad4
## 0.668273868
## prdl.my.fctriPadAir
## 0.750021930
## prdl.my.fctriPadAir2
## 1.069321724
## prdl.my.fctriPadmini
## -0.544635434
## prdl.my.fctriPadmini2
## 0.722563719
## prdl.my.fctriPadmini3
## 0.232854343
## spdiff.cut.fctr(-100,-10]
## 0.706646557
## spdiff.cut.fctr(-10,-1]
## 2.444653438
## spdiff.cut.fctr(-1,0]
## 2.719733403
## spdiff.cut.fctr(0,1]
## 1.422671775
## spdiff.cut.fctr(1,10]
## 2.429470647
## spdiff.cut.fctr(10,100]
## 1.811739477
## spdiff.cut.fctr(100,1e+03]
## -1.006053732
## biddable
## 1.063384536
## sprice.d20nexp
## 0.213691735
## sprice.log10
## -0.252197303
## sprice.root2
## -0.116412712
## startprice.dcm1.is9
## -0.311695693
## startprice.dcm2.is9
## -0.107927814
## startprice.dgt2.is9
## 0.068328645
## storage.fctr16
## -0.091582962
## storage.fctr32
## -0.018125285
## storage.fctr64
## 0.196848059
## storage.fctrUnknown
## 1.198928970
## cellular.fctr0:carrier.fctrNone
## 0.178991413
## cellular.fctr1:carrier.fctrSprint
## 0.998012470
## cellular.fctr1:carrier.fctrT-Mobile
## -0.294487639
## cellular.fctr1:carrier.fctrUnknown
## -0.157998492
## cellular.fctrUnknown:carrier.fctrUnknown
## -0.586038538
## cellular.fctr1:carrier.fctrVerizon
## 0.239484343
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.707410311
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.395000120
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.374540988
## prdl.my.fctriPad4:.clusterid.fctr2
## -0.829707453
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.258114409
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.489073061
## prdl.my.fctriPad1:.clusterid.fctr3
## -0.835718909
## prdl.my.fctriPad4:.clusterid.fctr3
## -2.919265985
## spdiff.cut.fctr(-100,-10]:biddable
## 1.091930842
## spdiff.cut.fctr(-10,-1]:biddable
## 0.563530982
## spdiff.cut.fctr(-1,0]:biddable
## 1.301966062
## spdiff.cut.fctr(0,1]:biddable
## 1.412439379
## spdiff.cut.fctr(1,10]:biddable
## 1.328324045
## spdiff.cut.fctr(10,100]:biddable
## 2.234824100
## spdiff.cut.fctr(100,1e+03]:biddable
## 3.295167237
## [1] "max lambda < lambdaOpt:"
## (Intercept)
## 2.4732516702
## .rnorm
## -0.0147945637
## D.chrs.pnct11.n.log
## 0.4063033361
## D.chrs.pnct13.n.log
## -0.0556546371
## D.ratio.weight.sum.wrds.n
## -0.0568393760
## D.ratio.wrds.stop.n.wrds.n
## -0.0679430265
## D.weight.post.stem.sum
## -0.0263036188
## D.weight.post.stop.sum
## -0.0077854736
## D.weight.sum
## -0.0227810767
## D.weight.sum.stem.stop.Ratio
## -1.7346449856
## D.wrds.n.log
## 0.0005928951
## cellular.fctrUnknown
## -0.6177984624
## color.fctrGold
## 0.0683620735
## color.fctrSpace Gray
## -0.3208405212
## color.fctrUnknown
## 0.2608347041
## color.fctrWhite
## -0.1193992178
## condition.fctrFor parts or not working
## -0.5461930702
## condition.fctrManufacturer refurbished
## -1.0285817470
## condition.fctrNew
## -0.0514396465
## condition.fctrNew other (see details)
## 0.3929190928
## condition.fctrSeller refurbished
## -0.8791499570
## prdl.my.fctriPad1
## -0.7115699626
## prdl.my.fctriPad2
## -0.5020786040
## prdl.my.fctriPad4
## 0.7009602312
## prdl.my.fctriPadAir
## 0.7793261251
## prdl.my.fctriPadAir2
## 1.1046915404
## prdl.my.fctriPadmini
## -0.5514123263
## prdl.my.fctriPadmini2
## 0.7467350290
## prdl.my.fctriPadmini3
## 0.2560292192
## spdiff.cut.fctr(-100,-10]
## 0.7538619841
## spdiff.cut.fctr(-10,-1]
## 2.5040502365
## spdiff.cut.fctr(-1,0]
## 2.7959985877
## spdiff.cut.fctr(0,1]
## 1.4499859089
## spdiff.cut.fctr(1,10]
## 2.4872071703
## spdiff.cut.fctr(10,100]
## 1.8606220547
## spdiff.cut.fctr(100,1e+03]
## -1.0018932838
## biddable
## 1.0843737704
## sprice.d20nexp
## 0.1747363583
## sprice.log10
## -0.2569500814
## sprice.root2
## -0.1193024617
## startprice.dcm1.is9
## -0.3154287297
## startprice.dcm2.is9
## -0.1108138174
## startprice.dgt2.is9
## 0.0719395701
## storage.fctr16
## -0.0998591473
## storage.fctr32
## -0.0212335197
## storage.fctr64
## 0.1992001047
## storage.fctrUnknown
## 1.2362752586
## cellular.fctr0:carrier.fctrNone
## 0.1793958687
## cellular.fctr1:carrier.fctrSprint
## 1.0128090093
## cellular.fctr1:carrier.fctrT-Mobile
## -0.2981699178
## cellular.fctr1:carrier.fctrUnknown
## -0.1606971820
## cellular.fctrUnknown:carrier.fctrUnknown
## -0.6033484544
## cellular.fctr1:carrier.fctrVerizon
## 0.2452288435
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.7269935317
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.4015491508
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.3757808061
## prdl.my.fctriPad4:.clusterid.fctr2
## -0.8651709167
## prdl.my.fctriPadAir:.clusterid.fctr2
## -0.0082995340
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.2730368764
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.5025103830
## prdl.my.fctriPad1:.clusterid.fctr3
## -0.8506771512
## prdl.my.fctriPad4:.clusterid.fctr3
## -3.0253180284
## spdiff.cut.fctr(-100,-10]:biddable
## 1.0757666026
## spdiff.cut.fctr(-10,-1]:biddable
## 0.5372859262
## spdiff.cut.fctr(-1,0]:biddable
## 1.3329022121
## spdiff.cut.fctr(0,1]:biddable
## 1.4379783926
## spdiff.cut.fctr(1,10]:biddable
## 1.3228314445
## spdiff.cut.fctr(10,100]:biddable
## 2.2452142403
## spdiff.cut.fctr(100,1e+03]:biddable
## 3.3176415949
## sold.fctr sold.fctr.predict.CSM.X.glmnet.N
## 1 N 471
## 2 Y 67
## sold.fctr.predict.CSM.X.glmnet.Y
## 1 77
## 2 403
## Prediction
## Reference N Y
## N 471 77
## Y 67 403
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.585462e-01 7.158519e-01 8.356115e-01 8.793838e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 2.741749e-105 4.532547e-01
## sold.fctr sold.fctr.predict.CSM.X.glmnet.N
## 1 N 348
## 2 Y 79
## sold.fctr.predict.CSM.X.glmnet.Y
## 1 99
## 2 304
## Prediction
## Reference N Y
## N 348 99
## Y 79 304
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.855422e-01 5.701259e-01 7.560267e-01 8.130134e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.094538e-49 1.544146e-01
## id
## 1 CSM.X.glmnet
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 14.047 0.538
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.854531 0.9069343 0.8021277 0.9345318
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8484211 0.8323381
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8356115 0.8793838 0.6607067
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7937629 0.8434004 0.7441253 0.8713734
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.4 0.7735369 0.7855422
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7560267 0.8130134 0.5701259
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01308189 0.02669142
## label step_major step_minor label_minor bgn end
## 5 fit.models_1_CSM.X 2 3 glmnet 401.081 419.453
## 6 fit.models_1_CSM.X 2 4 nnet 419.453 NA
## elapsed
## 5 18.372
## 6 NA
## [1] "fitting model: CSM.X.nnet"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Loading required package: nnet
## Aggregating results
## Selecting tuning parameters
## Fitting size = 1, decay = 0.1 on full training set
## # weights: 103
## initial value 724.965306
## iter 10 value 516.340099
## iter 20 value 440.806558
## iter 30 value 384.133446
## iter 40 value 358.725925
## iter 50 value 348.164595
## iter 60 value 337.066089
## iter 70 value 331.800295
## iter 80 value 330.382781
## iter 90 value 330.219842
## iter 100 value 330.215988
## final value 330.215988
## stopped after 100 iterations
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: size
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: decay
## Loading required package: NeuralNetTools
## Warning: replacing previous import by 'scales::alpha' when loading
## 'NeuralNetTools'
## a 100-1-1 network with 103 weights
## options were - entropy fitting decay=0.1
## b->h1 i1->h1 i2->h1 i3->h1 i4->h1 i5->h1 i6->h1 i7->h1
## -1.21 0.00 1.10 -0.31 0.03 -0.75 -0.02 1.85
## i8->h1 i9->h1 i10->h1 i11->h1 i12->h1 i13->h1 i14->h1 i15->h1
## -0.34 2.26 0.29 -0.47 0.29 -1.49 -1.73 0.06
## i16->h1 i17->h1 i18->h1 i19->h1 i20->h1 i21->h1 i22->h1 i23->h1
## -0.34 -0.63 0.14 -0.16 0.17 -0.20 0.00 0.58
## i24->h1 i25->h1 i26->h1 i27->h1 i28->h1 i29->h1 i30->h1 i31->h1
## 0.74 -0.10 -0.41 0.53 0.57 0.28 -0.15 -0.79
## i32->h1 i33->h1 i34->h1 i35->h1 i36->h1 i37->h1 i38->h1 i39->h1
## -0.83 -1.02 0.23 -0.87 -0.45 -1.37 -2.37 -2.53
## i40->h1 i41->h1 i42->h1 i43->h1 i44->h1 i45->h1 i46->h1 i47->h1
## -1.05 -2.33 -1.96 0.24 -1.42 0.38 0.51 0.06
## i48->h1 i49->h1 i50->h1 i51->h1 i52->h1 i53->h1 i54->h1 i55->h1
## 0.20 0.05 -0.05 -0.03 0.24 0.14 0.01 -0.87
## i56->h1 i57->h1 i58->h1 i59->h1 i60->h1 i61->h1 i62->h1 i63->h1
## -0.73 0.00 0.00 0.00 0.00 0.00 0.00 -0.56
## i64->h1 i65->h1 i66->h1 i67->h1 i68->h1 i69->h1 i70->h1 i71->h1
## 0.00 0.00 0.16 0.00 0.00 0.25 0.14 0.00
## i72->h1 i73->h1 i74->h1 i75->h1 i76->h1 i77->h1 i78->h1 i79->h1
## -0.21 0.00 -0.63 0.33 0.00 -0.12 0.75 0.06
## i80->h1 i81->h1 i82->h1 i83->h1 i84->h1 i85->h1 i86->h1 i87->h1
## 0.00 0.00 -0.15 0.00 0.02 0.56 0.00 0.00
## i88->h1 i89->h1 i90->h1 i91->h1 i92->h1 i93->h1 i94->h1 i95->h1
## 1.92 0.00 0.00 0.00 0.00 0.00 0.35 0.77
## i96->h1 i97->h1 i98->h1 i99->h1 i100->h1
## -0.50 -1.05 -0.58 -1.29 -2.14
## b->o h1->o
## 3.92 -8.69
## sold.fctr sold.fctr.predict.CSM.X.nnet.N sold.fctr.predict.CSM.X.nnet.Y
## 1 N 469 79
## 2 Y 61 409
## Prediction
## Reference N Y
## N 469 79
## Y 61 409
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.624754e-01 7.240786e-01 8.397793e-01 8.830508e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 3.512861e-108 1.507856e-01
## sold.fctr sold.fctr.predict.CSM.X.nnet.N sold.fctr.predict.CSM.X.nnet.Y
## 1 N 371 76
## 2 Y 97 286
## Prediction
## Reference N Y
## N 371 76
## Y 97 286
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.915663e-01 5.789866e-01 7.623176e-01 8.187270e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 3.265805e-52 1.283673e-01
## id
## 1 CSM.X.nnet
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 36.282 0.215
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8654721 0.9032847 0.8276596 0.939583
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8538622 0.8267681
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8397793 0.8830508 0.6499515
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.788357 0.8299776 0.7467363 0.8693232
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.5 0.7677852 0.7915663
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7623176 0.818727 0.5789866
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01204383 0.0245082
## label step_major step_minor label_minor bgn end
## 6 fit.models_1_CSM.X 2 4 nnet 419.453 462.547
## 7 fit.models_1_CSM.X 2 5 rpart 462.548 NA
## elapsed
## 6 43.094
## 7 NA
## [1] "fitting model: CSM.X.rpart"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## + Fold1.Rep1: cp=0.008511
## - Fold1.Rep1: cp=0.008511
## + Fold2.Rep1: cp=0.008511
## - Fold2.Rep1: cp=0.008511
## + Fold3.Rep1: cp=0.008511
## - Fold3.Rep1: cp=0.008511
## + Fold1.Rep2: cp=0.008511
## - Fold1.Rep2: cp=0.008511
## + Fold2.Rep2: cp=0.008511
## - Fold2.Rep2: cp=0.008511
## + Fold3.Rep2: cp=0.008511
## - Fold3.Rep2: cp=0.008511
## + Fold1.Rep3: cp=0.008511
## - Fold1.Rep3: cp=0.008511
## + Fold2.Rep3: cp=0.008511
## - Fold2.Rep3: cp=0.008511
## + Fold3.Rep3: cp=0.008511
## - Fold3.Rep3: cp=0.008511
## Aggregating results
## Selecting tuning parameters
## Fitting cp = 0.0128 on full training set
## Call:
## rpart(formula = .outcome ~ ., control = list(minsplit = 20, minbucket = 7,
## cp = 0, maxcompete = 4, maxsurrogate = 5, usesurrogate = 2,
## surrogatestyle = 0, maxdepth = 30, xval = 0))
## n= 1018
##
## CP nsplit rel error
## 1 0.54680851 0 1.0000000
## 2 0.03829787 1 0.4531915
## 3 0.01276596 3 0.3765957
##
## Variable importance
## biddable sprice.d20nexp
## 26 19
## sprice.log10 sprice.root2
## 19 19
## spdiff.cut.fctr(10,100]:biddable spdiff.cut.fctr(-100,-10]:biddable
## 7 6
## spdiff.cut.fctr(10,100] prdl.my.fctriPadAir2
## 2 1
## condition.fctrNew
## 1
##
## Node number 1: 1018 observations, complexity param=0.5468085
## predicted class=N expected loss=0.4616896 P(node) =1
## class counts: 548 470
## probabilities: 0.538 0.462
## left son=2 (553 obs) right son=3 (465 obs)
## Primary splits:
## biddable < 0.5 to the left, improve=169.50150, (0 missing)
## sprice.d20nexp < 0.005287171 to the left, improve=133.60310, (0 missing)
## sprice.log10 < 4.65253 to the right, improve=133.60310, (0 missing)
## sprice.root2 < 10.23963 to the right, improve=133.60310, (0 missing)
## spdiff.cut.fctr(10,100]:biddable < 0.5 to the left, improve= 46.43072, (0 missing)
## Surrogate splits:
## sprice.d20nexp < 0.0004767525 to the left, agree=0.752, adj=0.458, (0 split)
## sprice.log10 < 5.013527 to the right, agree=0.752, adj=0.458, (0 split)
## sprice.root2 < 12.26518 to the right, agree=0.752, adj=0.458, (0 split)
## spdiff.cut.fctr(-100,-10]:biddable < 0.5 to the left, agree=0.643, adj=0.219, (0 split)
## spdiff.cut.fctr(10,100]:biddable < 0.5 to the left, agree=0.623, adj=0.174, (0 split)
##
## Node number 2: 553 observations
## predicted class=N expected loss=0.1971067 P(node) =0.543222
## class counts: 444 109
## probabilities: 0.803 0.197
##
## Node number 3: 465 observations, complexity param=0.03829787
## predicted class=Y expected loss=0.2236559 P(node) =0.456778
## class counts: 104 361
## probabilities: 0.224 0.776
## left son=6 (163 obs) right son=7 (302 obs)
## Primary splits:
## sprice.log10 < 4.941607 to the right, improve=50.193340, (0 missing)
## sprice.root2 < 11.83195 to the right, improve=50.193340, (0 missing)
## sprice.d20nexp < 0.00091211 to the left, improve=50.193340, (0 missing)
## spdiff.cut.fctr(10,100] < 0.5 to the left, improve= 7.765835, (0 missing)
## spdiff.cut.fctr(10,100]:biddable < 0.5 to the left, improve= 7.765835, (0 missing)
## Surrogate splits:
## sprice.d20nexp < 0.00091211 to the left, agree=1.000, adj=1.000, (0 split)
## sprice.root2 < 11.83195 to the right, agree=1.000, adj=1.000, (0 split)
## prdl.my.fctriPadAir2 < 0.5 to the right, agree=0.688, adj=0.110, (0 split)
## condition.fctrNew < 0.5 to the right, agree=0.686, adj=0.104, (0 split)
## prdl.my.fctriPadAir < 0.5 to the right, agree=0.671, adj=0.061, (0 split)
##
## Node number 6: 163 observations, complexity param=0.03829787
## predicted class=N expected loss=0.4601227 P(node) =0.1601179
## class counts: 88 75
## probabilities: 0.540 0.460
## left son=12 (138 obs) right son=13 (25 obs)
## Primary splits:
## spdiff.cut.fctr(10,100] < 0.5 to the left, improve=14.757250, (0 missing)
## spdiff.cut.fctr(10,100]:biddable < 0.5 to the left, improve=14.757250, (0 missing)
## prdl.my.fctriPad3 < 0.5 to the left, improve= 3.293730, (0 missing)
## prdl.my.fctriPadAir2 < 0.5 to the left, improve= 3.226569, (0 missing)
## prdl.my.fctriPad2 < 0.5 to the right, improve= 3.083225, (0 missing)
## Surrogate splits:
## spdiff.cut.fctr(10,100]:biddable < 0.5 to the left, agree=1, adj=1, (0 split)
##
## Node number 7: 302 observations
## predicted class=Y expected loss=0.05298013 P(node) =0.2966601
## class counts: 16 286
## probabilities: 0.053 0.947
##
## Node number 12: 138 observations
## predicted class=N expected loss=0.3695652 P(node) =0.1355599
## class counts: 87 51
## probabilities: 0.630 0.370
##
## Node number 13: 25 observations
## predicted class=Y expected loss=0.04 P(node) =0.02455796
## class counts: 1 24
## probabilities: 0.040 0.960
##
## n= 1018
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 1018 470 N (0.53831041 0.46168959)
## 2) biddable< 0.5 553 109 N (0.80289331 0.19710669) *
## 3) biddable>=0.5 465 104 Y (0.22365591 0.77634409)
## 6) sprice.log10>=4.941607 163 75 N (0.53987730 0.46012270)
## 12) spdiff.cut.fctr(10,100]< 0.5 138 51 N (0.63043478 0.36956522) *
## 13) spdiff.cut.fctr(10,100]>=0.5 25 1 Y (0.04000000 0.96000000) *
## 7) sprice.log10< 4.941607 302 16 Y (0.05298013 0.94701987) *
## sold.fctr sold.fctr.predict.CSM.X.rpart.N
## 1 N 531
## 2 Y 160
## sold.fctr.predict.CSM.X.rpart.Y
## 1 17
## 2 310
## Prediction
## Reference N Y
## N 531 17
## Y 160 310
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.261297e-01 6.424640e-01 8.014236e-01 8.489327e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 1.866627e-83 1.356115e-26
## sold.fctr sold.fctr.predict.CSM.X.rpart.N
## 1 N 354
## 2 Y 107
## sold.fctr.predict.CSM.X.rpart.Y
## 1 93
## 2 276
## Prediction
## Reference N Y
## N 354 93
## Y 107 276
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.590361e-01 5.139178e-01 7.284488e-01 7.877710e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.789179e-39 3.579707e-01
## id
## 1 CSM.X.rpart
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 5 3.622 0.078
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8142763 0.9689781 0.6595745 0.8400159
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.9 0.7779172 0.8251457
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8014236 0.8489327 0.6414684
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7534652 0.9194631 0.5874674 0.7890637
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7340426 0.7590361
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7284488 0.787771 0.5139178
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01198064 0.0244548
## label step_major step_minor label_minor bgn end
## 7 fit.models_1_CSM.X 2 5 rpart 462.548 470.263
## 8 fit.models_1_CSM.X 2 6 gbm 470.264 NA
## elapsed
## 7 7.715
## 8 NA
## [1] "fitting model: CSM.X.gbm"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Loading required package: gbm
## Loading required package: splines
## Loaded gbm 2.1.1
## Aggregating results
## Selecting tuning parameters
## Fitting n.trees = 100, interaction.depth = 5, shrinkage = 0.1, n.minobsinnode = 10 on full training set
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 56: cellular.fctr1:carrier.fctrNone has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 57: cellular.fctrUnknown:carrier.fctrNone has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 58: cellular.fctr0:carrier.fctrOther has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 59: cellular.fctr1:carrier.fctrOther has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 60: cellular.fctrUnknown:carrier.fctrOther has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 61: cellular.fctr0:carrier.fctrSprint has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 63: cellular.fctrUnknown:carrier.fctrSprint has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 64: cellular.fctr0:carrier.fctrT-Mobile has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 66: cellular.fctrUnknown:carrier.fctrT-Mobile has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 67: cellular.fctr0:carrier.fctrUnknown has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 70: cellular.fctr0:carrier.fctrVerizon has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 72: cellular.fctrUnknown:carrier.fctrVerizon has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 75: prdl.my.fctriPad2:.clusterid.fctr2 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 79: prdl.my.fctriPadAir2:.clusterid.fctr2 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 80: prdl.my.fctriPadmini:.clusterid.fctr2 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 82: prdl.my.fctriPadmini3:.clusterid.fctr2 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 85: prdl.my.fctriPad2:.clusterid.fctr3 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 86: prdl.my.fctriPad3:.clusterid.fctr3 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 88: prdl.my.fctriPadAir:.clusterid.fctr3 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 89: prdl.my.fctriPadAir2:.clusterid.fctr3 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 90: prdl.my.fctriPadmini:.clusterid.fctr3 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 91: prdl.my.fctriPadmini2:.clusterid.fctr3 has no variation.
## Warning in gbm.fit(x = structure(c(3.91202300542815, 4.61512051684126, 0, :
## variable 92: prdl.my.fctriPadmini3:.clusterid.fctr3 has no variation.
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 1.2859 nan 0.1000 0.0458
## 2 1.2127 nan 0.1000 0.0339
## 3 1.1469 nan 0.1000 0.0322
## 4 1.0992 nan 0.1000 0.0241
## 5 1.0534 nan 0.1000 0.0214
## 6 1.0141 nan 0.1000 0.0188
## 7 0.9818 nan 0.1000 0.0163
## 8 0.9516 nan 0.1000 0.0133
## 9 0.9276 nan 0.1000 0.0102
## 10 0.9037 nan 0.1000 0.0119
## 20 0.7732 nan 0.1000 0.0033
## 40 0.6662 nan 0.1000 -0.0008
## 60 0.5981 nan 0.1000 -0.0008
## 80 0.5556 nan 0.1000 -0.0007
## 100 0.5136 nan 0.1000 -0.0012
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: interaction.depth
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: shrinkage
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: n.minobsinnode
## var
## biddable biddable
## sprice.log10 sprice.log10
## sprice.d20nexp sprice.d20nexp
## spdiff.cut.fctr(10,100] spdiff.cut.fctr(10,100]
## spdiff.cut.fctr(1,10] spdiff.cut.fctr(1,10]
## D.ratio.weight.sum.wrds.n D.ratio.weight.sum.wrds.n
## D.weight.sum.stem.stop.Ratio D.weight.sum.stem.stop.Ratio
## spdiff.cut.fctr(-10,-1] spdiff.cut.fctr(-10,-1]
## prdl.my.fctriPadAir2 prdl.my.fctriPadAir2
## D.weight.post.stem.sum D.weight.post.stem.sum
## spdiff.cut.fctr(-100,-10] spdiff.cut.fctr(-100,-10]
## D.weight.post.stop.sum D.weight.post.stop.sum
## startprice.dgt1.is9 startprice.dgt1.is9
## D.ratio.wrds.stop.n.wrds.n D.ratio.wrds.stop.n.wrds.n
## spdiff.cut.fctr(-100,-10]:biddable spdiff.cut.fctr(-100,-10]:biddable
## prdl.my.fctriPadmini prdl.my.fctriPadmini
## D.wrds.n.log D.wrds.n.log
## spdiff.cut.fctr(100,1e+03] spdiff.cut.fctr(100,1e+03]
## D.chrs.pnct11.n.log D.chrs.pnct11.n.log
## prdl.my.fctriPad2 prdl.my.fctriPad2
## D.chrs.uppr.n.log D.chrs.uppr.n.log
## spdiff.cut.fctr(10,100]:biddable spdiff.cut.fctr(10,100]:biddable
## startprice.dcm1.is9 startprice.dcm1.is9
## prdl.my.fctriPad1 prdl.my.fctriPad1
## spdiff.cut.fctr(-1,0] spdiff.cut.fctr(-1,0]
## prdl.my.fctriPadmini2 prdl.my.fctriPadmini2
## D.terms.post.stem.n.log D.terms.post.stem.n.log
## condition.fctrFor parts or not working condition.fctrFor parts or not working
## cellular.fctr0:carrier.fctrNone cellular.fctr0:carrier.fctrNone
## prdl.my.fctriPad3 prdl.my.fctriPad3
## startprice.dcm2.is9 startprice.dcm2.is9
## D.chrs.n.log D.chrs.n.log
## color.fctrWhite color.fctrWhite
## color.fctrUnknown color.fctrUnknown
## spdiff.cut.fctr(-10,-1]:biddable spdiff.cut.fctr(-10,-1]:biddable
## prdl.my.fctriPadAir prdl.my.fctriPadAir
## storage.fctrUnknown storage.fctrUnknown
## cellular.fctrUnknown cellular.fctrUnknown
## storage.fctr64 storage.fctr64
## condition.fctrNew condition.fctrNew
## D.chrs.pnct13.n.log D.chrs.pnct13.n.log
## color.fctrSpace Gray color.fctrSpace Gray
## cellular.fctr1:carrier.fctrVerizon cellular.fctr1:carrier.fctrVerizon
## D.wrds.stop.n.log D.wrds.stop.n.log
## storage.fctr32 storage.fctr32
## startprice.dgt2.is9 startprice.dgt2.is9
## D.terms.post.stop.n.log D.terms.post.stop.n.log
## storage.fctr16 storage.fctr16
## condition.fctrManufacturer refurbished condition.fctrManufacturer refurbished
## cellular.fctr1 cellular.fctr1
## prdl.my.fctriPadmini3 prdl.my.fctriPadmini3
## cellular.fctr1:carrier.fctrSprint cellular.fctr1:carrier.fctrSprint
## prdl.my.fctriPad1:.clusterid.fctr2 prdl.my.fctriPad1:.clusterid.fctr2
## prdl.my.fctriPad4 prdl.my.fctriPad4
## condition.fctrSeller refurbished condition.fctrSeller refurbished
## condition.fctrNew other (see details) condition.fctrNew other (see details)
## D.weight.sum D.weight.sum
## D.wrds.unq.n.log D.wrds.unq.n.log
## color.fctrGold color.fctrGold
## spdiff.cut.fctr(0,1] spdiff.cut.fctr(0,1]
## sprice.root2 sprice.root2
## cellular.fctr1:carrier.fctrNone cellular.fctr1:carrier.fctrNone
## cellular.fctrUnknown:carrier.fctrNone cellular.fctrUnknown:carrier.fctrNone
## cellular.fctr0:carrier.fctrOther cellular.fctr0:carrier.fctrOther
## cellular.fctr1:carrier.fctrOther cellular.fctr1:carrier.fctrOther
## cellular.fctrUnknown:carrier.fctrOther cellular.fctrUnknown:carrier.fctrOther
## cellular.fctr0:carrier.fctrSprint cellular.fctr0:carrier.fctrSprint
## cellular.fctrUnknown:carrier.fctrSprint cellular.fctrUnknown:carrier.fctrSprint
## cellular.fctr0:carrier.fctrT-Mobile cellular.fctr0:carrier.fctrT-Mobile
## cellular.fctr1:carrier.fctrT-Mobile cellular.fctr1:carrier.fctrT-Mobile
## cellular.fctrUnknown:carrier.fctrT-Mobile cellular.fctrUnknown:carrier.fctrT-Mobile
## cellular.fctr0:carrier.fctrUnknown cellular.fctr0:carrier.fctrUnknown
## cellular.fctr1:carrier.fctrUnknown cellular.fctr1:carrier.fctrUnknown
## cellular.fctrUnknown:carrier.fctrUnknown cellular.fctrUnknown:carrier.fctrUnknown
## cellular.fctr0:carrier.fctrVerizon cellular.fctr0:carrier.fctrVerizon
## cellular.fctrUnknown:carrier.fctrVerizon cellular.fctrUnknown:carrier.fctrVerizon
## prdl.my.fctrUnknown:.clusterid.fctr2 prdl.my.fctrUnknown:.clusterid.fctr2
## prdl.my.fctriPad2:.clusterid.fctr2 prdl.my.fctriPad2:.clusterid.fctr2
## prdl.my.fctriPad3:.clusterid.fctr2 prdl.my.fctriPad3:.clusterid.fctr2
## prdl.my.fctriPad4:.clusterid.fctr2 prdl.my.fctriPad4:.clusterid.fctr2
## prdl.my.fctriPadAir:.clusterid.fctr2 prdl.my.fctriPadAir:.clusterid.fctr2
## prdl.my.fctriPadAir2:.clusterid.fctr2 prdl.my.fctriPadAir2:.clusterid.fctr2
## prdl.my.fctriPadmini:.clusterid.fctr2 prdl.my.fctriPadmini:.clusterid.fctr2
## prdl.my.fctriPadmini2:.clusterid.fctr2 prdl.my.fctriPadmini2:.clusterid.fctr2
## prdl.my.fctriPadmini3:.clusterid.fctr2 prdl.my.fctriPadmini3:.clusterid.fctr2
## prdl.my.fctrUnknown:.clusterid.fctr3 prdl.my.fctrUnknown:.clusterid.fctr3
## prdl.my.fctriPad1:.clusterid.fctr3 prdl.my.fctriPad1:.clusterid.fctr3
## prdl.my.fctriPad2:.clusterid.fctr3 prdl.my.fctriPad2:.clusterid.fctr3
## prdl.my.fctriPad3:.clusterid.fctr3 prdl.my.fctriPad3:.clusterid.fctr3
## prdl.my.fctriPad4:.clusterid.fctr3 prdl.my.fctriPad4:.clusterid.fctr3
## prdl.my.fctriPadAir:.clusterid.fctr3 prdl.my.fctriPadAir:.clusterid.fctr3
## prdl.my.fctriPadAir2:.clusterid.fctr3 prdl.my.fctriPadAir2:.clusterid.fctr3
## prdl.my.fctriPadmini:.clusterid.fctr3 prdl.my.fctriPadmini:.clusterid.fctr3
## prdl.my.fctriPadmini2:.clusterid.fctr3 prdl.my.fctriPadmini2:.clusterid.fctr3
## prdl.my.fctriPadmini3:.clusterid.fctr3 prdl.my.fctriPadmini3:.clusterid.fctr3
## spdiff.cut.fctr(-1,0]:biddable spdiff.cut.fctr(-1,0]:biddable
## spdiff.cut.fctr(0,1]:biddable spdiff.cut.fctr(0,1]:biddable
## spdiff.cut.fctr(1,10]:biddable spdiff.cut.fctr(1,10]:biddable
## spdiff.cut.fctr(100,1e+03]:biddable spdiff.cut.fctr(100,1e+03]:biddable
## rel.inf
## biddable 32.14304083
## sprice.log10 13.00656469
## sprice.d20nexp 11.96411850
## spdiff.cut.fctr(10,100] 5.48768923
## spdiff.cut.fctr(1,10] 2.83342765
## D.ratio.weight.sum.wrds.n 2.67098917
## D.weight.sum.stem.stop.Ratio 2.09416431
## spdiff.cut.fctr(-10,-1] 2.06478301
## prdl.my.fctriPadAir2 1.99468929
## D.weight.post.stem.sum 1.82377361
## spdiff.cut.fctr(-100,-10] 1.68926656
## D.weight.post.stop.sum 1.65515352
## startprice.dgt1.is9 1.33165278
## D.ratio.wrds.stop.n.wrds.n 1.27463822
## spdiff.cut.fctr(-100,-10]:biddable 0.96023476
## prdl.my.fctriPadmini 0.91766515
## D.wrds.n.log 0.90071073
## spdiff.cut.fctr(100,1e+03] 0.89340145
## D.chrs.pnct11.n.log 0.87263117
## prdl.my.fctriPad2 0.86791355
## D.chrs.uppr.n.log 0.78279292
## spdiff.cut.fctr(10,100]:biddable 0.76579222
## startprice.dcm1.is9 0.73780552
## prdl.my.fctriPad1 0.70267459
## spdiff.cut.fctr(-1,0] 0.63627310
## prdl.my.fctriPadmini2 0.58645306
## D.terms.post.stem.n.log 0.57347438
## condition.fctrFor parts or not working 0.57130731
## cellular.fctr0:carrier.fctrNone 0.56989431
## prdl.my.fctriPad3 0.55286481
## startprice.dcm2.is9 0.50510414
## D.chrs.n.log 0.46197133
## color.fctrWhite 0.46002488
## color.fctrUnknown 0.44543576
## spdiff.cut.fctr(-10,-1]:biddable 0.36515555
## prdl.my.fctriPadAir 0.35389756
## storage.fctrUnknown 0.31229550
## cellular.fctrUnknown 0.30046252
## storage.fctr64 0.29398607
## condition.fctrNew 0.27863960
## D.chrs.pnct13.n.log 0.27373166
## color.fctrSpace Gray 0.23784317
## cellular.fctr1:carrier.fctrVerizon 0.22176957
## D.wrds.stop.n.log 0.19347620
## storage.fctr32 0.18933659
## startprice.dgt2.is9 0.17229630
## D.terms.post.stop.n.log 0.16958460
## storage.fctr16 0.15879311
## condition.fctrManufacturer refurbished 0.15812122
## cellular.fctr1 0.11479510
## prdl.my.fctriPadmini3 0.08909664
## cellular.fctr1:carrier.fctrSprint 0.08693383
## prdl.my.fctriPad1:.clusterid.fctr2 0.08625362
## prdl.my.fctriPad4 0.06041165
## condition.fctrSeller refurbished 0.04802603
## condition.fctrNew other (see details) 0.03671745
## D.weight.sum 0.00000000
## D.wrds.unq.n.log 0.00000000
## color.fctrGold 0.00000000
## spdiff.cut.fctr(0,1] 0.00000000
## sprice.root2 0.00000000
## cellular.fctr1:carrier.fctrNone 0.00000000
## cellular.fctrUnknown:carrier.fctrNone 0.00000000
## cellular.fctr0:carrier.fctrOther 0.00000000
## cellular.fctr1:carrier.fctrOther 0.00000000
## cellular.fctrUnknown:carrier.fctrOther 0.00000000
## cellular.fctr0:carrier.fctrSprint 0.00000000
## cellular.fctrUnknown:carrier.fctrSprint 0.00000000
## cellular.fctr0:carrier.fctrT-Mobile 0.00000000
## cellular.fctr1:carrier.fctrT-Mobile 0.00000000
## cellular.fctrUnknown:carrier.fctrT-Mobile 0.00000000
## cellular.fctr0:carrier.fctrUnknown 0.00000000
## cellular.fctr1:carrier.fctrUnknown 0.00000000
## cellular.fctrUnknown:carrier.fctrUnknown 0.00000000
## cellular.fctr0:carrier.fctrVerizon 0.00000000
## cellular.fctrUnknown:carrier.fctrVerizon 0.00000000
## prdl.my.fctrUnknown:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad3:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad4:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini3:.clusterid.fctr2 0.00000000
## prdl.my.fctrUnknown:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad1:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad3:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad4:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadAir:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadAir2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini3:.clusterid.fctr3 0.00000000
## spdiff.cut.fctr(-1,0]:biddable 0.00000000
## spdiff.cut.fctr(0,1]:biddable 0.00000000
## spdiff.cut.fctr(1,10]:biddable 0.00000000
## spdiff.cut.fctr(100,1e+03]:biddable 0.00000000
## sold.fctr sold.fctr.predict.CSM.X.gbm.N sold.fctr.predict.CSM.X.gbm.Y
## 1 N 497 51
## 2 Y 35 435
## Prediction
## Reference N Y
## N 497 51
## Y 35 435
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 9.155206e-01 8.304542e-01 8.967192e-01 9.318742e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 1.524407e-153 1.057722e-01
## sold.fctr sold.fctr.predict.CSM.X.gbm.N sold.fctr.predict.CSM.X.gbm.Y
## 1 N 322 125
## 2 Y 66 317
## Prediction
## Reference N Y
## N 322 125
## Y 66 317
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.698795e-01 5.420564e-01 7.397113e-01 7.981170e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.766677e-43 2.707932e-05
## id
## 1 CSM.X.gbm
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 11.216 0.945
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8910157 0.9416058 0.8404255 0.9666078
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.9100418 0.8323391
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8967192 0.9318742 0.6607657
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7573963 0.8411633 0.6736292 0.8482836
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7684848 0.7698795
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7397113 0.798117 0.5420564
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01727058 0.03505153
## label step_major step_minor label_minor bgn end
## 8 fit.models_1_CSM.X 2 6 gbm 470.264 485.846
## 9 fit.models_1_CSM.X 2 7 avNNet 485.847 NA
## elapsed
## 8 15.582
## 9 NA
## [1] "fitting model: CSM.X.avNNet"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Aggregating results
## Selecting tuning parameters
## Fitting size = 5, decay = 0, bag = FALSE on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: decay
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: bag
## Length Class Mode
## model 5 -none- list
## repeats 1 -none- numeric
## bag 1 -none- logical
## names 99 -none- character
## terms 3 terms call
## coefnames 99 -none- character
## xlevels 0 -none- list
## xNames 99 -none- character
## problemType 1 -none- character
## tuneValue 3 data.frame list
## obsLevels 2 -none- character
## sold.fctr sold.fctr.predict.CSM.X.avNNet.N
## 1 N 528
## 2 Y 41
## sold.fctr.predict.CSM.X.avNNet.Y
## 1 20
## 2 429
## Prediction
## Reference N Y
## N 528 20
## Y 41 429
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 9.400786e-01 8.790649e-01 9.236905e-01 9.538584e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 1.341655e-179 1.044502e-02
## sold.fctr sold.fctr.predict.CSM.X.avNNet.N
## 1 N 321
## 2 Y 72
## sold.fctr.predict.CSM.X.avNNet.Y
## 1 126
## 2 311
## Prediction
## Reference N Y
## N 321 126
## Y 72 311
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.614458e-01 5.248339e-01 7.309494e-01 7.900724e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 2.413828e-40 1.655216e-04
## id
## 1 CSM.X.avNNet
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 112.342 0.908
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.9110887 0.9817518 0.8404255 0.9718765
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.3 0.9336235 0.8313664
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.9236905 0.9538584 0.6585418
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7765959 0.8926174 0.6605744 0.8285057
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.2 0.7585366 0.7614458
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7309494 0.7900724 0.5248339
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01659836 0.03265237
## label step_major step_minor label_minor bgn end
## 9 fit.models_1_CSM.X 2 7 avNNet 485.847 602.217
## 10 fit.models_1_CSM.X 2 8 rf 602.218 NA
## elapsed
## 9 116.37
## 10 NA
## [1] "fitting model: CSM.X.rf"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Loading required package: randomForest
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
##
## The following object is masked from 'package:dplyr':
##
## combine
##
## The following object is masked from 'package:gdata':
##
## combine
##
## The following object is masked from 'package:ggplot2':
##
## margin
## Aggregating results
## Selecting tuning parameters
## Fitting mtry = 74 on full training set
## Length Class Mode
## call 4 -none- call
## type 1 -none- character
## predicted 1018 factor numeric
## err.rate 1500 -none- numeric
## confusion 6 -none- numeric
## votes 2036 matrix numeric
## oob.times 1018 -none- numeric
## classes 2 -none- character
## importance 99 -none- numeric
## importanceSD 0 -none- NULL
## localImportance 0 -none- NULL
## proximity 0 -none- NULL
## ntree 1 -none- numeric
## mtry 1 -none- numeric
## forest 14 -none- list
## y 1018 factor numeric
## test 0 -none- NULL
## inbag 0 -none- NULL
## xNames 99 -none- character
## problemType 1 -none- character
## tuneValue 1 data.frame list
## obsLevels 2 -none- character
## sold.fctr sold.fctr.predict.CSM.X.rf.N sold.fctr.predict.CSM.X.rf.Y
## 1 N 547 1
## 2 Y NA 470
## Prediction
## Reference N Y
## N 547 1
## Y 0 470
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 9.990177e-01 9.980241e-01 9.945391e-01 9.999751e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 1.358103e-271 1.000000e+00
## sold.fctr sold.fctr.predict.CSM.X.rf.N sold.fctr.predict.CSM.X.rf.Y
## 1 N 315 132
## 2 Y 67 316
## Prediction
## Reference N Y
## N 315 132
## Y 67 316
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.602410e-01 5.234042e-01 7.296990e-01 7.889219e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 6.593359e-40 5.710347e-06
## id
## 1 CSM.X.rf
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 5 13.948 5.878
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.9990876 0.9981752 1 0.9999981
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.5 0.9989373 0.8320236
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.9945391 0.9999751 0.6607791
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7831321 0.8456376 0.7206266 0.8492707
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7605295 0.760241
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.729699 0.7889219 0.5234042
## label step_major step_minor label_minor bgn end
## 10 fit.models_1_CSM.X 2 8 rf 602.218 619.976
## 11 fit.models_1_CSM.X 2 9 earth 619.977 NA
## elapsed
## 10 17.758
## 11 NA
## [1] "fitting model: CSM.X.earth"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Loading required package: earth
## Loading required package: plotmo
## Loading required package: plotrix
##
## Attaching package: 'plotrix'
##
## The following object is masked from 'package:arm':
##
## rescale
##
## The following object is masked from 'package:gplots':
##
## plotCI
##
## Loading required package: TeachingDemos
## Aggregating results
## Selecting tuning parameters
## Fitting nprune = 12, degree = 1 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: degree
## Call: earth(x=matrix[1018,99], y=factor.object, keepxy=TRUE,
## glm=list(family=function.object), degree=1, nprune=12)
##
## GLM coefficients
## Y
## (Intercept) -2.210365
## spdiff.cut.fctr(-10,-1] 2.063762
## spdiff.cut.fctr(-1,0] 5.594756
## spdiff.cut.fctr(0,1] 5.793884
## spdiff.cut.fctr(1,10] 2.070603
## spdiff.cut.fctr(10,100] 1.489047
## spdiff.cut.fctr(-100,-10]:biddable 2.859710
## spdiff.cut.fctr(-10,-1]:biddable 2.387313
## spdiff.cut.fctr(1,10]:biddable 3.507058
## spdiff.cut.fctr(10,100]:biddable 4.397619
## spdiff.cut.fctr(100,1e+03]:biddable 4.289807
##
## Earth selected 11 of 54 terms, and 10 of 99 predictors
## Termination condition: RSq changed by less than 0.001 at 54 terms
## Importance: biddable-unused, spdiff.cut.fctr(10,100], ...
## Number of terms at each degree of interaction: 1 10 (additive model)
## Earth GCV 0.1203188 RSS 117.4833 GRSq 0.5168333 RSq 0.53565
##
## GLM null.deviance 1405.265 (1017 dof) deviance 758.8907 (1007 dof) iters 6
## sold.fctr sold.fctr.predict.CSM.X.earth.N
## 1 N 455
## 2 Y 77
## sold.fctr.predict.CSM.X.earth.Y
## 1 93
## 2 393
## Prediction
## Reference N Y
## N 455 93
## Y 77 393
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.330059e-01 6.648514e-01 8.086485e-01 8.554193e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 8.450416e-88 2.499596e-01
## sold.fctr sold.fctr.predict.CSM.X.earth.N
## 1 N 353
## 2 Y 73
## sold.fctr.predict.CSM.X.earth.Y
## 1 94
## 2 310
## Prediction
## Reference N Y
## N 353 94
## Y 73 310
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.987952e-01 5.967662e-01 7.698788e-01 8.255712e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 2.395646e-55 1.217074e-01
## id
## 1 CSM.X.earth
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 5 8.229 0.939
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8328001 0.9124088 0.7531915 0.9006872
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8221757 0.8241614
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8086485 0.8554193 0.6443967
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.8002815 0.8903803 0.7101828 0.8533245
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.4 0.7878018 0.7987952
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7698788 0.8255712 0.5967662
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.0121086 0.02385211
## label step_major step_minor label_minor bgn end
## 11 fit.models_1_CSM.X 2 9 earth 619.977 632.678
## 12 fit.models_1_CSM.X 2 10 bagEarth 632.678 NA
## elapsed
## 11 12.701
## 12 NA
## [1] "fitting model: CSM.X.bagEarth"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## + : degree=1, nprune=64
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## - : degree=1, nprune=64
## Aggregating results
## Fitting final model on full training set
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
##
## Call:
## bagEarth.default(x = structure(c(3.91202300542815, 4.61512051684126, 0, 4.61512051684126, 0, 0, 0, 0, 4.58496747867057, 4.59511985013459, 4.61512051684126, 4.61512051684126, 0, 4.44265125649032, 0, 4.53259949315326, 4.62497281328427, 4.57471097850338, 4.59511985013459, 4.61512051684126, 4.34380542185368, 0, 0, 4.62497281328427, 0, 2.70805020110221, 0, 0, 4.61512051684126, 4.57471097850338, 4.38202663467388, 0, 0, 0, 0, 4.61512051684126, 4.61512051684126, 0, 0, 4.62497281328427, 4.59511985013459, 0, 4.54329478227, 4.59511985013459, 0, 0, 0, 0, 0, 0, 4.54329478227, 0, 0, 0, 4.57471097850338, 4.46590811865458, 0, 3.52636052461616, 0, 4.56434819146784, 0, 4.54329478227, 0, 0, 0, 4.59511985013459, 4.55387689160054, 0, 3.04452243772342, 0, 0, 0, 0, 4.59511985013459, 0, 0, 3.04452243772342, 0, 0, 4.55387689160054, 0, 4.11087386417331, 0, 4.52178857704904, 0, 4.62497281328427, 0, 0, 4.56434819146784, 4.20469261939097, 3.66356164612965, 0, 0, 4.57471097850338, 4.56434819146784, 0, 4.54329478227, 3.52636052461616, 0, 3.68887945411394, 4.61512051684126, 0, 4.02535169073515, 0, 0, 4.64439089914137, 0, 0, 0, 0, 0, 0, 0, 4.60517018598809, 0, 4.47733681447821, 0, 3.85014760171006, 0, 4.59511985013459, 4.54329478227, 0, 0, 0, 0, 4.52178857704904, 0, 4.62497281328427, 0, 4.61512051684126, 3.25809653802148, 0, 4.59511985013459, 0, 0, 4.59511985013459, 0, 0, 4.30406509320417, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 4.62497281328427, 0, 0, 0, 0, 4.56434819146784, 0, 0, 0, 0, 0, 4.56434819146784, 0, 4.62497281328427, 2.484906649788, 0, 0, 0, 0, 3.63758615972639, 0, 0, 0, 0, 0, 3.61091791264422, 3.43398720448515, 0, 0, 0, 0, 0, 4.60517018598809, 0, 0, 0, 0, 3.91202300542815, 4.56434819146784, 4.55387689160054, 4.23410650459726, 0, 4.62497281328427, 0, 0, 4.61512051684126, 3.29583686600433, 0, 4.56434819146784, 0, 2.77258872223978, 0, 0, 0, 4.62497281328427, 3.55534806148941, 0, 0, 0, 4.61512051684126, 4.59511985013459, 0, 0, 0, 0, 3.04452243772342, 0, 0, 0, 4.61512051684126, 0, 4.58496747867057, 3.52636052461616, 0, 4.61512051684126, 0, 0, 4.62497281328427, 0, 3.93182563272433, 0, 0, 0, 0, 0, 0, 4.06044301054642, 0, 0, 0, 0, 4.0943445622221, 2.39789527279837, 0, 0, 0, 0, 4.61512051684126, 0, 0, 4.62497281328427, 0, 4.56434819146784, 3.49650756146648, 0, 0, 4.58496747867057, 0, 4.59511985013459, 4.11087386417331, 3.73766961828337, 0, 0, 0, 0, 3.04452243772342, 0, 4.61512051684126, 4.62497281328427, 0, 4.59511985013459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.61512051684126, 4.52178857704904, 0, 0, 0, 0, 0, 0, 0, 0, 4.58496747867057, 4.60517018598809, 0, 0, 0, 4.46590811865458, 0, 3.93182563272433, 4.58496747867057, 0, 4.58496747867057, 2.99573227355399, 0, 4.24849524204936, 3.09104245335832, 3.52636052461616, 0, 3.29583686600433, 0, 4.55387689160054, 0, 0, 0, 4.4188406077966, 0, 4.00733318523247, 0, 0, 4.60517018598809, 4.52178857704904, 0, 0, 0, 3.80666248977032, 4.51085950651685, 4.21950770517611, 0, 4.60517018598809, 0, 0, 4.60517018598809, 4.60517018598809, 0, 4.00733318523247, 0, 4.60517018598809, 0, 4.47733681447821, 4.4188406077966, 0, 4.62497281328427, 0, 0, 0, 4.60517018598809, 3.98898404656427, 0, 0, 0, 0, 4.58496747867057, 0, 3.29583686600433, 0, 4.49980967033027, 0, 0, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 4.60517018598809, 4.58496747867057, 0, 0, 3.97029191355212, 3.25809653802148, 0, 4.58496747867057, 4.62497281328427, 3.80666248977032, 0, 3.80666248977032, 0, 0, 4.58496747867057, 4.61512051684126, 4.62497281328427, 0, 4.59511985013459, 0, 0, 4.55387689160054, 4.62497281328427, 4.52178857704904, 4.38202663467388, 4.60517018598809, 3.85014760171006, 0, 4.54329478227, 4.59511985013459, 4.52178857704904, 0, 0, 4.60517018598809, 4.04305126783455, 0, 3.73766961828337, 4.59511985013459, 0, 0, 4.54329478227, 0, 0, 0, 0, 4.57471097850338, 3.91202300542815, 3.91202300542815, 4.04305126783455, 4.48863636973214, 0, 3.36729582998647, 0, 0, 0, 3.49650756146648, 4.61512051684126, 3.52636052461616, 2.70805020110221, 0, 0, 0, 0, 0, 0, 4.55387689160054, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 4.60517018598809, 0, 0, 0, 3.52636052461616, 0, 0, 0, 4.56434819146784, 4.55387689160054, 0, 0, 0, 0, 0, 4.55387689160054, 0, 0, 0, 0, 0, 0, 4.60517018598809, 0, 4.52178857704904, 4.62497281328427, 0, 4.06044301054642, 0, 0, 0, 0, 2.77258872223978, 4.59511985013459, 0, 0, 3.3322045101752, 0, 4.59511985013459, 4.53259949315326, 4.33073334028633, 4.61512051684126, 0, 3.52636052461616, 0, 0, 4.61512051684126, 0, 0, 4.57471097850338, 4.60517018598809, 0, 4.62497281328427, 4.58496747867057, 3.78418963391826, 0, 0, 0, 4.56434819146784, 0, 4.14313472639153, 0, 0, 0, 0, 0, 4.0943445622221, 4.48863636973214, 0, 0, 4.62497281328427, 4.55387689160054, 0, 4.52178857704904, 0, 4.48863636973214, 0, 0, 0, 4.58496747867057, 4.59511985013459, 4.61512051684126, 4.57471097850338, 0, 3.73766961828337, 0, 0, 0, 0, 0, 4.55387689160054, 3.04452243772342, 4.57471097850338, 4.27666611901606, 4.51085950651685, 3.91202300542815, 3.87120101090789, 0, 4.61512051684126, 0, 0, 0, 0, 4.48863636973214, 0, 0, 4.63472898822964, 3.68887945411394, 0, 2.30258509299405, 2.83321334405622, 0, 1.38629436111989, 0, 0, 3.25809653802148, 4.20469261939097, 4.62497281328427, 4.56434819146784, 4.21950770517611, 4.59511985013459, 4.40671924726425, 0, 4.00733318523247, 0, 4.62497281328427, 3.29583686600433, 0, 0, 0, 0, 0, 3.3322045101752, 4.21950770517611, 0, 3.52636052461616, 0, 4.54329478227, 3.98898404656427, 0, 0, 0, 0, 0, 0, 4.0943445622221, 3.09104245335832, 0, 0, 4.58496747867057, 0, 4.58496747867057, 0, 4.57471097850338, 2.30258509299405, 2.70805020110221, 0, 4.58496747867057, 2.94443897916644, 4.20469261939097, 4.4188406077966, 0, 0, 0, 4.58496747867057, 0, 4.52178857704904, 3.43398720448515, 0, 0, 0, 4.61512051684126, 0, 4.61512051684126, 3.71357206670431, 4.62497281328427, 4.56434819146784, 0, 4.59511985013459, 0, 0, 0, 4.53259949315326, 4.61512051684126, 4.52178857704904, 4.21950770517611, 3.3322045101752, 4.58496747867057, 0, 0, 4.54329478227, 0, 0, 3.43398720448515, 0, 0, 0, 0, 4.61512051684126, 4.57471097850338, 3.49650756146648, 0, 4.58496747867057, 1.94591014905531, 0, 4.55387689160054, 0, 4.35670882668959, 0, 0, 4.4188406077966, 0, 0, 0, 4.02535169073515, 0, 2.19722457733622, 4.61512051684126, 0, 0, 4.61512051684126, 0, 0, 1.79175946922805, 0, 0, 0, 4.33073334028633, 0, 0, 0, 4.07753744390572, 4.33073334028633, 3.09104245335832, 0, 4.60517018598809, 0, 0, 0, 0, 0, 0, 4.55387689160054, 0, 4.58496747867057, 0, 0, 3.78418963391826, 0, 4.62497281328427, 0, 0, 0, 0, 3.29583686600433, 0, 0, 0, 0, 4.57471097850338, 0, 4.49980967033027, 0, 0, 4.61512051684126, 0, 0, 0, 0, 0, 4.26267987704132, 4.55387689160054, 4.62497281328427, 0, 4.61512051684126, 0, 0, 0, 4.27666611901606, 3.09104245335832, 2.77258872223978, 0, 4.06044301054642, 3.09104245335832, 4.57471097850338, 0, 2.70805020110221, 0, 0, 4.55387689160054, 0, 0, 2.83321334405622, 4.61512051684126, 3.71357206670431, 3.40119738166216, 0, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 4.62497281328427, 4.61512051684126, 0, 3.73766961828337, 0, 4.61512051684126, 4.56434819146784, 0, 0, 4.61512051684126, 0, 4.57471097850338, 0, 0, 4.04305126783455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.18965474202643, 0, 2.99573227355399, 0, 4.21950770517611, 0, 4.68213122712422, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 3.87120101090789, 4.57471097850338, 0, 0, 0, 0, 0, 0, 0, 0, 4.29045944114839, 3.80666248977032, 0, 0, 0, 0, 0, 3.61091791264422, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.31748811353631, 0, 4.58496747867057, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 3.66356164612965, 0, 4.60517018598809, 0, 4.59511985013459, 0, 0, 0, 0, 2.484906649788, 0, 0, 4.56434819146784, 2.39789527279837, 0, 4.58496747867057, 0, 0, 4.62497281328427, 0, 0, 0, 4.61512051684126, 0, 4.30406509320417, 4.30406509320417, 0, 0, 0, 0, 4.60517018598809, 2.89037175789616, 4.58496747867057, 0, 0, 0, 0, 0, 0, 4.33073334028633, 4.53259949315326, 0, 0, 3.55534806148941, 0, 1.94591014905531, 4.60517018598809, 0, 0, 0, 4.26267987704132, 4.55387689160054, 0, 3.2188758248682, 0, 0, 0, 4.47733681447821, 4.11087386417331, 0, 4.49980967033027, 0, 0, 0, 4.62497281328427, 2.77258872223978, 4.62497281328427, 4.55387689160054, 4.44265125649032, 0, 3.46573590279973, 0, 4.61512051684126, 3.58351893845611, 0, 0, 4.55387689160054, 3.66356164612965, 0, 0, 0, 0, 0, 0, 4.62497281328427, 4.12713438504509, 0, 0, 4.59511985013459, 4.61512051684126, 4.61512051684126, 0, 0, 0, 4.60517018598809, 4.58496747867057, 0, 4.49980967033027, 0, 4.39444915467244, 0, 4.59511985013459, 3.87120101090789, 0, 0, 2.63905732961526, 4.58496747867057, 4.02535169073515, 4.63472898822964, 4.53259949315326, 0, 4.55387689160054, 4.62497281328427, 4.59511985013459, 0, 0, 0, 4.47733681447821, 0, 0, 4.58496747867057, 4.58496747867057, 0, 2.99573227355399, 0, 0, 0, 4.60517018598809, 0, 0, 3.76120011569356, 0, 0, 0, 0, 4.45434729625351, 0, 4.57471097850338, 0, 4.58496747867057, 0, 0, 0, 4.29045944114839, 0, 4.63472898822964, 4.59511985013459, 4.58496747867057, 4.58496747867057, 4.61512051684126, 4.60517018598809, 4.62497281328427, 3.25809653802148, 4.62497281328427, 4.58496747867057, 4.58496747867057, 4.62497281328427, 0, 0, 0, 0, 0, 4.61512051684126, 0, 0, 3.93182563272433, 4.60517018598809, 4.57471097850338, 0, 4.58496747867057, 0, 0, 4.57471097850338, 4.58496747867057, 4.53259949315326, 0, 4.59511985013459, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 1.09861228866811, 0.693147180559945, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 1.09861228866811, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 2.19722457733622, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.6094379124341, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.79175946922805, 0, 0.693147180559945, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 1.38629436111989, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.6094379124341, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.6094379124341, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 1.94591014905531, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 2.07944154167984, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 1.79175946922805, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 3.58351893845611, 4.40671924726425, 0, 4.35670882668959, 0, 0, 0, 0, 4.34380542185368, 4.38202663467388, 4.40671924726425, 4.4188406077966, 0, 4.26267987704132, 0, 4.31748811353631, 4.40671924726425, 4.18965474202643, 4.33073334028633, 4.4188406077966, 4.14313472639153, 0, 0, 4.44265125649032, 0, 2.63905732961526, 0, 0, 4.38202663467388, 4.35670882668959, 4.12713438504509, 0, 0, 0, 0, 4.40671924726425, 4.40671924726425, 0, 0, 4.39444915467244, 4.40671924726425, 0, 4.27666611901606, 4.40671924726425, 0, 0, 0, 0, 0, 0, 4.27666611901606, 0, 0, 0, 4.23410650459726, 4.27666611901606, 0, 3.3322045101752, 0, 4.34380542185368, 0, 4.34380542185368, 0, 0, 0, 4.36944785246702, 4.34380542185368, 0, 2.89037175789616, 0, 0, 0, 0, 4.35670882668959, 0, 0, 2.89037175789616, 0, 0, 4.23410650459726, 0, 3.87120101090789, 0, 4.31748811353631, 0, 4.4188406077966, 0, 0, 4.35670882668959, 3.97029191355212, 3.49650756146648, 0, 0, 4.33073334028633, 4.33073334028633, 0, 4.34380542185368, 3.40119738166216, 0, 3.43398720448515, 4.40671924726425, 0, 3.85014760171006, 0, 0, 4.45434729625351, 0, 0, 0, 0, 0, 0, 0, 4.39444915467244, 0, 4.20469261939097, 0, 3.63758615972639, 0, 4.34380542185368, 4.33073334028633, 0, 0, 0, 0, 4.31748811353631, 0, 4.40671924726425, 0, 4.39444915467244, 3.13549421592915, 0, 4.36944785246702, 0, 0, 4.36944785246702, 0, 0, 4.12713438504509, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 4.4188406077966, 0, 0, 0, 0, 4.30406509320417, 0, 0, 0, 0, 0, 4.34380542185368, 0, 4.23410650459726, 2.39789527279837, 0, 0, 0, 0, 3.43398720448515, 0, 0, 0, 0, 0, 3.46573590279973, 3.25809653802148, 0, 0, 0, 0, 0, 4.38202663467388, 0, 0, 0, 0, 3.71357206670431, 4.36944785246702, 4.33073334028633, 3.97029191355212, 0, 4.38202663467388, 0, 0, 4.40671924726425, 2.99573227355399, 0, 4.34380542185368, 0, 2.63905732961526, 0, 0, 0, 4.4188406077966, 3.40119738166216, 0, 0, 0, 4.34380542185368, 4.33073334028633, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 4.34380542185368, 0, 4.39444915467244, 3.36729582998647, 0, 4.34380542185368, 0, 0, 4.38202663467388, 0, 3.78418963391826, 0, 0, 0, 0, 0, 0, 3.87120101090789, 0, 0, 0, 0, 3.85014760171006, 2.07944154167984, 0, 0, 0, 0, 4.39444915467244, 0, 0, 4.33073334028633, 0, 4.35670882668959, 3.36729582998647, 0, 0, 4.38202663467388, 0, 4.39444915467244, 3.93182563272433, 3.52636052461616, 0, 0, 0, 0, 2.94443897916644, 0, 4.38202663467388, 4.43081679884331, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.43081679884331, 4.31748811353631, 0, 0, 0, 0, 0, 0, 0, 0, 4.36944785246702, 4.34380542185368, 0, 0, 0, 4.26267987704132, 0, 3.71357206670431, 4.36944785246702, 0, 4.33073334028633, 2.94443897916644, 0, 4.02535169073515, 2.94443897916644, 3.17805383034795, 0, 3.13549421592915, 0, 4.36944785246702, 0, 0, 0, 4.21950770517611, 0, 3.80666248977032, 0, 0, 4.38202663467388, 4.27666611901606, 0, 0, 0, 3.58351893845611, 4.31748811353631, 4.00733318523247, 0, 4.39444915467244, 0, 0, 4.39444915467244, 4.34380542185368, 0, 3.73766961828337, 0, 4.39444915467244, 0, 4.26267987704132, 4.23410650459726, 0, 4.38202663467388, 0, 0, 0, 4.39444915467244, 3.78418963391826, 0, 0, 0, 0, 4.17438726989564, 0, 3.09104245335832, 0, 4.26267987704132, 0, 0, 0, 0, 4.14313472639153, 0, 0, 0, 0, 0, 4.38202663467388, 4.35670882668959, 0, 0, 3.8286413964891, 3.09104245335832, 0, 4.36944785246702, 4.38202663467388, 3.63758615972639, 0, 3.61091791264422, 0, 0, 4.36944785246702, 4.38202663467388, 4.35670882668959, 0, 4.39444915467244, 0, 0, 4.35670882668959, 4.45434729625351, 4.31748811353631, 4.15888308335967, 4.38202663467388, 3.68887945411394, 0, 4.34380542185368, 4.35670882668959, 4.33073334028633, 0, 0, 4.39444915467244, 3.80666248977032, 0, 3.55534806148941, 4.34380542185368, 0, 0, 4.24849524204936, 0, 0, 0, 0, 4.34380542185368, 3.76120011569356, 3.76120011569356, 3.80666248977032, 4.29045944114839, 0, 3.2188758248682, 0, 0, 0, 3.29583686600433, 4.33073334028633, 3.36729582998647, 2.63905732961526, 0, 0, 0, 0, 0, 0, 4.34380542185368, 4.36944785246702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 4.39444915467244, 0, 0, 0, 3.36729582998647, 0, 0, 0, 4.34380542185368, 4.26267987704132, 0, 0, 0, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 4.34380542185368, 0, 4.31748811353631, 4.39444915467244, 0, 3.85014760171006, 0, 0, 0, 0, 2.70805020110221, 4.30406509320417, 0, 0, 3.09104245335832, 0, 4.36944785246702, 4.30406509320417, 4.0943445622221, 4.29045944114839, 0, 3.36729582998647, 0, 0, 4.36944785246702, 0, 0, 4.33073334028633, 4.43081679884331, 0, 4.38202663467388, 4.36944785246702, 3.55534806148941, 0, 0, 0, 4.31748811353631, 0, 3.95124371858143, 0, 0, 0, 0, 0, 3.85014760171006, 4.17438726989564, 0, 0, 4.39444915467244, 4.34380542185368, 0, 4.34380542185368, 0, 4.29045944114839, 0, 0, 0, 4.35670882668959, 4.39444915467244, 4.34380542185368, 4.23410650459726, 0, 3.52636052461616, 0, 0, 0, 0, 0, 4.34380542185368, 2.94443897916644, 4.36944785246702, 4.06044301054642, 4.29045944114839, 3.76120011569356, 3.68887945411394, 0, 4.35670882668959, 0, 0, 0, 0, 4.29045944114839, 0, 0, 4.35670882668959, 3.49650756146648, 0, 2.30258509299405, 2.77258872223978, 0, 0, 0, 0, 3.09104245335832, 3.95124371858143, 4.38202663467388, 4.31748811353631, 3.97029191355212, 4.40671924726425, 4.12713438504509, 0, 3.85014760171006, 0, 4.40671924726425, 3.13549421592915, 0, 0, 0, 0, 0, 3.17805383034795, 4.06044301054642, 0, 3.36729582998647, 0, 4.34380542185368, 3.78418963391826, 0, 0, 0, 0, 0, 0, 3.91202300542815, 2.99573227355399, 0, 0, 4.33073334028633, 0, 4.33073334028633, 0, 4.29045944114839, 2.30258509299405, 2.63905732961526, 0, 4.33073334028633, 2.83321334405622, 4.00733318523247, 4.21950770517611, 0, 0, 0, 4.29045944114839, 0, 4.31748811353631, 3.25809653802148, 0, 0, 0, 4.34380542185368, 0, 4.40671924726425, 3.52636052461616, 4.38202663467388, 4.31748811353631, 0, 4.36944785246702, 0, 0, 0, 4.29045944114839, 4.35670882668959, 4.26267987704132, 4.02535169073515, 3.17805383034795, 4.36944785246702, 0, 0, 4.29045944114839, 0, 0, 3.2188758248682, 0, 0, 0, 0, 4.39444915467244, 4.23410650459726, 3.25809653802148, 0, 4.29045944114839, 1.79175946922805, 0, 4.34380542185368, 0, 4.14313472639153, 0, 0, 4.11087386417331, 0, 0, 0, 3.85014760171006, 0, 2.07944154167984, 4.38202663467388, 0, 0, 4.36944785246702, 0, 0, 0, 0, 0, 0, 4.12713438504509, 0, 0, 0, 3.85014760171006, 4.0943445622221, 2.94443897916644, 0, 4.43081679884331, 0, 0, 0, 0, 0, 0, 4.34380542185368, 0, 4.36944785246702, 0, 0, 3.58351893845611, 0, 4.44265125649032, 0, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 4.34380542185368, 0, 4.31748811353631, 0, 0, 4.43081679884331, 0, 0, 0, 0, 0, 4.0943445622221, 4.34380542185368, 4.35670882668959, 0, 4.39444915467244, 0, 0, 0, 4.06044301054642, 2.89037175789616, 2.70805020110221, 0, 3.76120011569356, 2.94443897916644, 4.31748811353631, 0, 2.56494935746154, 0, 0, 4.34380542185368, 0, 0, 2.70805020110221, 4.30406509320417, 3.61091791264422, 3.2188758248682, 0, 4.39444915467244, 0, 0, 0, 0, 0, 0, 0, 4.40671924726425, 4.39444915467244, 0, 3.52636052461616, 0, 4.27666611901606, 4.24849524204936, 0, 0, 4.39444915467244, 0, 4.26267987704132, 0, 0, 3.8286413964891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.97029191355212, 0, 2.94443897916644, 0, 4.04305126783455, 0, 4.45434729625351, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 3.63758615972639, 4.36944785246702, 0, 0, 0, 0, 0, 0, 0, 0, 4.0943445622221, 3.52636052461616, 0, 0, 0, 0, 0, 3.43398720448515, 4.38202663467388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.12713438504509, 0, 4.35670882668959, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 3.43398720448515, 0, 4.35670882668959, 0, 4.35670882668959, 0, 0, 0, 0, 2.39789527279837, 0, 0, 4.33073334028633, 2.07944154167984, 0, 4.39444915467244, 0, 0, 4.34380542185368, 0, 0, 0, 4.33073334028633, 0, 4.0943445622221, 4.12713438504509, 0, 0, 0, 0, 4.40671924726425, 2.83321334405622, 4.35670882668959, 0, 0, 0, 0, 0, 0, 4.0943445622221, 4.30406509320417, 0, 0, 3.29583686600433, 0, 1.94591014905531, 4.31748811353631, 0, 0, 0, 4.02535169073515, 4.26267987704132, 0, 2.99573227355399, 0, 0, 0, 4.27666611901606, 3.95124371858143, 0, 4.33073334028633, 0, 0, 0, 4.33073334028633, 2.56494935746154, 4.4188406077966, 4.34380542185368, 4.24849524204936, 0, 3.2188758248682, 0, 4.43081679884331, 3.43398720448515, 0, 0, 4.34380542185368, 3.46573590279973, 0, 0, 0, 0, 0, 0, 4.34380542185368, 3.95124371858143, 0, 0, 4.36944785246702, 4.40671924726425, 4.40671924726425, 0, 0, 0, 4.4188406077966, 4.38202663467388, 0, 4.24849524204936, 0, 4.15888308335967, 0, 4.39444915467244, 3.63758615972639, 0, 0, 2.56494935746154, 4.33073334028633, 3.87120101090789, 4.43081679884331, 4.29045944114839, 0, 4.34380542185368, 4.4188406077966, 4.38202663467388, 0, 0, 0, 4.27666611901606, 0, 0, 4.35670882668959, 4.36944785246702, 0, 2.83321334405622, 0, 0, 0, 4.33073334028633, 0, 0, 3.61091791264422, 0, 0, 0, 0, 4.07753744390572, 0, 4.35670882668959, 0, 4.36944785246702, 0, 0, 0, 4.06044301054642, 0, 4.38202663467388, 4.39444915467244, 4.31748811353631, 4.31748811353631, 4.39444915467244, 4.38202663467388, 4.4188406077966, 3.13549421592915, 4.4188406077966, 4.33073334028633, 4.33073334028633, 4.4188406077966, 0, 0, 0, 0, 0, 4.36944785246702, 0, 0, 3.73766961828337, 4.35670882668959, 4.33073334028633, 0, 4.30406509320417, 0, 0, 4.35670882668959, 4.36944785246702, 4.30406509320417, 0, 4.38202663467388, 0.494170156780135, 0.312403224557006, 0, 0.314353876710608, 0, 0, 0, 0, 0.301938723491973, 0.334677016985451, 0.309885882089034, 0.334107807868675, 0, 0.375229391707452, 0, 0.362876279035801, 0.223270732046763, 0.339145449223105, 0.227012717350933, 0.334107807868675, 0.444492438061344, 0, 0, 0.34072373896162, 0, 1.5442021222047, 0, 0, 0.225284528638337, 0.291839137298002, 0.297654477248662, 0, 0, 0, 0, 0.312403224557006, 0.312403224557006, 0, 0, 0.307481824910476, 0.264203530935207, 0, 0.272020518477341, 0.264203530935207, 0, 0, 0, 0, 0, 0, 0.272020518477341, 0, 0, 0, 0.444251059937868, 0.39855062093409, 0, 0.936553089964022, 0, 0.252426584159587, 0, 0.271203978622023, 0, 0, 0, 0.274258026204688, 0.30297368003908, 0, 1.73111484233122, 0, 0, 0, 0, 0.319465062977761, 0, 0, 1.73111484233122, 0, 0, 0.44213854711426, 0, 0.427774394053572, 0, 0.254478411453061, 0, 0.309257747046549, 0, 0, 0.347675444086348, 0.406253865381844, 0.841202666844029, 0, 0, 0.243944990566848, 0.460836461082662, 0, 0.271203978622023, 1.14076379435525, 0, 0.943130718573181, 0.309885882089034, 0, 0.569348002776984, 0, 0, 0.342220490877133, 0, 0, 0, 0, 0, 0, 0, 0.234426157684682, 0, 0.392851721208862, 0, 0.734815250933873, 0, 0.246653890829208, 0.295049136603492, 0, 0, 0, 0, 0.254478411453061, 0, 0.251304284896703, 0, 0.275913559723324, 1.36837680102287, 0, 0.27142196915141, 0, 0, 0.226242594208203, 0, 0, 0.47990672081384, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 0.271380376776611, 0, 0, 0, 0, 0.238079127040332, 0, 0, 0, 0, 0, 0.28475566782934, 0, 0.350517431573213, 0, 0, 0, 0, 0, 0.690553320555097, 0, 0, 0, 0, 0, 0.557843630275006, 0.800212722462319, 0, 0, 0, 0, 0, 0.344003860952933, 0, 0, 0, 0, 0.578417977502994, 0.347081548356732, 0.29017366569034, 0.277224507415129, 0, 0.268387325540199, 0, 0, 0.293641000479118, 0.847711434880166, 0, 0.272042468774298, 0, 1.5442021222047, 0, 0, 0, 0.288866563691058, 0.901817441884017, 0, 0, 0, 0.237021745855487, 0.264538951315079, 0, 0, 0, 0, 1.73111484233122, 0, 0, 0, 0.314954973046978, 0, 0.341189226397428, 0.723191309011633, 0, 0.269268811300983, 0, 0, 0.216364407987102, 0, 0.672732085007388, 0, 0, 0, 0, 0, 0, 0.371754935466022, 0, 0, 0, 0, 0.509209672526157, 5.24140438986225, 0, 0, 0, 0, 0.204523000729883, 0, 0, 0.202369429962527, 0, 0.3865588970167, 0.958021043896148, 0, 0, 0.245601780809872, 0, 0.239441105196089, 0.458720179574478, 0.87570428391642, 0, 0, 0, 0, 1.7923759220489, 0, 0.224119816444848, 0.2973596305317, 0, 0.292266086072958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.306523915515472, 0.254478411453061, 0, 0, 0, 0, 0, 0, 0, 0, 0.269285209248605, 0.40981849287478, 0, 0, 0, 0.472117427122265, 0, 0.540431644038799, 0.263053734996754, 0, 0.256277161863554, 1.7923759220489, 0, 0.331667208320814, 1.34000935909475, 0.918806633090413, 0, 1.57682097651122, 0, 0.275266987382106, 0, 0, 0, 0.311708530640119, 0, 0.418875983360525, 0, 0, 0.346906561605208, 0.320850345366418, 0, 0, 0, 0.669408262694084, 0.355171854450396, 0.390821762478886, 0, 0.351861765373514, 0, 0, 0.22997050090175, 0.34580843516543, 0, 0.531137218677061, 0, 0.225960288072292, 0, 0.22157949941388, 0.560348909478433, 0, 0.362661608830065, 0, 0, 0, 0.225960288072292, 0.538041883180279, 0, 0, 0, 0, 0.290543548446881, 0, 1.05715921095217, 0, 0.271426499076034, 0, 0, 0, 0, 0.331295409517069, 0, 0, 0, 0, 0, 0.284457763808005, 0.276459899737701, 0, 0, 0.495290016411334, 1.17493409003786, 0, 0.302026208685838, 0.268387325540199, 0.658129257938394, 0, 0.679999178591032, 0, 0, 0.330300822253112, 0.188219300095333, 0.213166789133356, 0, 0.267783842186279, 0, 0, 0.42849347165767, 0.336323082098144, 0.302319129848189, 0.352329853290997, 0.278718455371326, 0.462893043701312, 0, 0.318953672521507, 0.237595897272811, 0.325721213042295, 0, 0, 0.225960288072292, 0.76061637521152, 0, 0.641576915886562, 0.25290604062307, 0, 0, 0.270702999306128, 0, 0, 0, 0, 0.286621936941535, 0.782906965285105, 0.757489449601549, 0.618264486561655, 0.292033641645871, 0, 1.2880287907619, 0, 0, 0, 0.877457193082609, 0.211123739098949, 0.98066045993869, 1.5442021222047, 0, 0, 0, 0, 0, 0, 0.30297368003908, 0.281167380711295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.78613710686606, 0.225960288072292, 0, 0, 0, 0.98066045993869, 0, 0, 0, 0.429294017432165, 0.321436864479171, 0, 0, 0, 0, 0, 0.30297368003908, 0, 0, 0, 0, 0, 0, 0.306823327159171, 0, 0.254478411453061, 0.245544045501941, 0, 0.565126354304392, 0, 0, 0, 0, 1.70826900590328, 0.295519520735739, 0, 0, 1.08085214029411, 0, 0.276895690474959, 0.361383833980154, 0.391299098115024, 0.230310384402894, 0, 0.98066045993869, 0, 0, 0.211220797471138, 0, 0, 0.232767690048566, 0.294023339730362, 0, 0.202221617661428, 0.269285209248605, 0.687558180869777, 0, 0, 0, 0.249723630486917, 0, 0.453868151189595, 0, 0, 0, 0, 0, 0.714995946240111, 0.403719812535583, 0, 0, 0.450433201384486, 0.30297368003908, 0, 0.412450970331383, 0, 0.292033641645871, 0, 0, 0, 0.267729467105115, 0.241134363556797, 0.325477191806495, 0.444251059937868, 0, 0.747468395454271, 0, 0, 0, 0, 0, 0.30297368003908, 1.7923759220489, 0.353068820275631, 0.35141807434904, 0.245682664815602, 0.744858146823006, 0.428415701469014, 0, 0.227771084465228, 0, 0, 0, 0, 0.284291856866989, 0, 0, 0.310611589324557, 0.903322723989628, 0, 4.74133078672761, 2.37843971755005, 0, 0, 0, 0, 1.09988778581671, 0.439465695019343, 0.240367139627058, 0.292702691324947, 0.27809038214418, 0.332164018882422, 0.31480154658381, 0, 0.59855012452951, 0, 0.205105439231234, 0.91964133642142, 0, 0, 0, 0, 0, 1.23366674945186, 0.372334667652189, 0, 0.98066045993869, 0, 0.271203978622023, 0.401190174316326, 0, 0, 0, 0, 0, 0, 0.632865616193342, 1.81505563059998, 0, 0, 0.32789904662135, 0, 0.236064908270878, 0, 0.23593585698252, 4.74133078672761, 1.95539509619382, 0, 0.236064908270878, 1.91739432283256, 0.402516197520927, 0.330380834520838, 0, 0, 0, 0.435725716595369, 0, 0.254478411453061, 1.26895324124573, 0, 0, 0, 0.237021745855487, 0, 0.308808024154022, 0.556640975453094, 0.258563951344469, 0.247327176425606, 0, 0.299582909305062, 0, 0, 0, 0.235621804600582, 0.230494931814746, 0.289497362736755, 0.399932743704768, 1.6220594534704, 0.269285209248605, 0, 0, 0.512737798575773, 0, 0, 0.774964474811945, 0, 0, 0, 0, 0.275913559723324, 0.444251059937868, 0.666816398822789, 0, 0.29049183487949, 4.40490312214513, 0, 0.30297368003908, 0, 0.348045594703269, 0, 0, 0.549953273750436, 0, 0, 0, 0.594548669827774, 0, 5.24140438986225, 0.221876118032434, 0, 0, 0.225842494305518, 0, 0, 0, 0, 0, 0, 0.324940959775057, 0, 0, 0, 0.539389546518545, 0.644266670765523, 1.14281968844155, 0, 0.294023339730362, 0, 0, 0, 0, 0, 0, 0.30297368003908, 0, 0.2719785037074, 0, 0, 0.467570681377432, 0, 0.34072373896162, 0, 0, 0, 0, 0.665238214666863, 0, 0, 0, 0, 0.294888427817243, 0, 0.395368609656602, 0, 0, 0.408885745447053, 0, 0, 0, 0, 0, 0.454983758851523, 0.30297368003908, 0.33753287523964, 0, 0.28307931217305, 0, 0, 0, 0.462641468404897, 1.53735772478377, 1.70826900590328, 0, 0.474365132330889, 1.75822753424622, 0.249671505420172, 0, 2.24568379414746, 0, 0, 0.30297368003908, 0, 0, 1.50148797361248, 0.413672031350312, 0.787330502335832, 0.820875535831347, 0, 0.287677085282379, 0, 0, 0, 0, 0, 0, 0, 0.273574842062784, 0.322258053921587, 0, 0.652343730383853, 0, 0.418837254434271, 0.437153584256191, 0, 0, 0.322258053921587, 0, 0.436148110874876, 0, 0, 0.673761034447092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.442153636166868, 0, 1.7923759220489, 0, 0.482055439233372, 0, 0.303388230486764, 0, 0, 0, 0, 0, 1.70826900590328, 0, 0, 0, 0, 0, 0, 0.650851534849827, 0.281657424580965, 0, 0, 0, 0, 0, 0, 0, 0, 0.337436934834939, 0.764110804527296, 0, 0, 0, 0, 0, 0.693204856281947, 0.200765211925614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.375066200841858, 0, 0.297997326860307, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 0.635393317854526, 0, 0.248916420157414, 0, 0.22745713370209, 0, 0, 0, 0, 2.58465729777969, 0, 0, 0.256946473693431, 5.24140438986225, 0, 0.347268084058763, 0, 0, 0.259206884011278, 0, 0, 0, 0.230583909743927, 0, 0.305949758614952, 0.372206257216077, 0, 0, 0, 0, 0.274469074924569, 2.01099320152793, 0.380143434656899, 0, 0, 0, 0, 0, 0, 0.305872370805274, 0.292024037204065, 0, 0, 0.7079549401592, 0, 7.04875931191986, 0.229574180259607, 0, 0, 0, 0.434225161637496, 0.265648540969818, 0, 1.48006902580372, 0, 0, 0, 0.286243756942894, 0.519107953392194, 0, 0.384609919374082, 0, 0, 0, 0.230230448516047, 2.86428226594619, 0.308210128712469, 0.284733046296767, 0.379955153643041, 0, 0.615970170216855, 0, 0.328495542528313, 0.935150255866193, 0, 0, 0.284733046296767, 0.661651161078178, 0, 0, 0, 0, 0, 0, 0.270626464830403, 0.608095754762081, 0, 0, 0.228755068996959, 0.362571953469492, 0.362571953469492, 0, 0, 0, 0.368805793006138, 0.385367816720747, 0, 0.300267374033821, 0, 0.274940300730001, 0, 0.287134087285582, 0.519197800428062, 0, 0, 2.67975175014649, 0.282553921596038, 0.59558317091831, 0.282967465788391, 0.269187490168835, 0, 0.269030104733471, 0.308210128712469, 0.263707971545156, 0, 0, 0, 0.321267696999242, 0, 0, 0.347034062088096, 0.351398843850925, 0, 1.39091255962125, 0, 0, 0, 0.208927524714573, 0, 0, 0.78169261066, 0, 0, 0, 0, 0.426448383378181, 0, 0.264498812685525, 0, 0.25724522488881, 0, 0, 0, 0.325052135230517, 0, 0.308082452411229, 0.36776604867954, 0.218337925621457, 0.218337925621457, 0.353641900269307, 0.220695961775166, 0.260687090670009, 2.23433074315342, 0.260687090670009, 0.216233773634519, 0.216233773634519, 0.260687090670009, 0, 0, 0, 0, 0, 0.339842701354473, 0, 0, 0.822584607251349, 0.285826489145903, 0.303532594795409, 0, 0.291442574450388, 0, 0, 0.228945782393772, 0.314630859108809, 0.275309722905657, 0, 0.361368813068621, 0.2, 0.0588235294117647, 1, 0.333333333333333, 1, 1, 1, 1, 0.0588235294117647, 0.176470588235294, 0.125, 0.222222222222222, 1, 0.230769230769231, 1, 0.133333333333333, 0.105263157894737, 0.266666666666667, 0.136363636363636, 0.222222222222222, 0.0769230769230769, 1, 1, 0.25, 1, 0.333333333333333, 1, 1, 0.142857142857143, 0.0588235294117647, 0.117647058823529, 1, 1, 1, 1, 0.0588235294117647, 0.0588235294117647, 1, 1, 0.157894736842105, 0.117647058823529, 1, 0.0555555555555556, 0.117647058823529, 1, 1, 1, 1, 1, 1, 0.0555555555555556, 1, 1, 1, 0.2, 0.0769230769230769, 1, 0.142857142857143, 1, 0.0555555555555556, 1, 0.0588235294117647, 1, 1, 1, 0.0555555555555556, 0.0625, 1, 0.25, 1, 1, 1, 1, 0.235294117647059, 1, 1, 0.25, 1, 1, 0.0714285714285714, 1, 0.166666666666667, 1, 0.0588235294117647, 1, 0.1875, 1, 1, 0.2, 0.333333333333333, 0.142857142857143, 1, 1, 0.105263157894737, 0.230769230769231, 1, 0.0588235294117647, 0.2, 1, 0.571428571428571, 0.125, 1, 0.3, 1, 1, 0.230769230769231, 1, 1, 1, 1, 1, 1, 1, 0.263157894736842, 1, 0.0714285714285714, 1, 0.25, 1, 0.1, 0.0625, 1, 1, 1, 1, 0.0588235294117647, 1, 0.210526315789474, 1, 0.238095238095238, 0.2, 1, 0.35, 1, 1, 0.105263157894737, 1, 1, 0.272727272727273, 1, 1, 1, 0.5, 1, 1, 1, 1, 1, 1, 0.315789473684211, 1, 1, 1, 1, 0.15, 1, 1, 1, 1, 1, 0.157894736842105, 1, 0.3125, 1, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 1, 0.285714285714286, 0.285714285714286, 1, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 0.125, 0.2, 0.117647058823529, 0.1875, 1, 0.19047619047619, 1, 1, 0.176470588235294, 0.2, 1, 0.263157894736842, 1, 0.333333333333333, 1, 1, 1, 0.294117647058823, 0.2, 1, 1, 1, 0.142857142857143, 0.166666666666667, 1, 1, 1, 1, 0.25, 1, 1, 1, 0.166666666666667, 1, 0.2, 0.166666666666667, 1, 0.2, 1, 1, 0.142857142857143, 1, 0.375, 1, 1, 1, 1, 1, 1, 0.3, 1, 1, 1, 1, 0.2, 0.5, 1, 1, 1, 1, 0.1, 1, 1, 0.0952380952380952, 1, 0.1875, 0.166666666666667, 1, 1, 0.0526315789473684, 1, 0.157894736842105, 0.1, 0.142857142857143, 1, 1, 1, 1, 0.333333333333333, 1, 0.25, 0.117647058823529, 1, 0.235294117647059, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.1875, 0.0588235294117647, 1, 1, 1, 1, 1, 1, 1, 1, 0.0526315789473684, 0.133333333333333, 1, 1, 1, 0.0769230769230769, 1, 0.4, 0.111111111111111, 1, 0.1, 0.333333333333333, 1, 0.0714285714285714, 0.2, 0.142857142857143, 1, 0.4, 1, 0.25, 1, 1, 1, 0.2, 1, 0.1, 1, 1, 0.466666666666667, 0.133333333333333, 1, 1, 1, 0.375, 0.125, 0.153846153846154, 1, 0.375, 1, 1, 0.157894736842105, 0.4, 1, 0.166666666666667, 1, 0.05, 1, 0.411764705882353, 0.363636363636364, 1, 0.333333333333333, 1, 1, 1, 0.05, 0.1, 1, 1, 1, 1, 0.157894736842105, 1, 0.6, 1, 0.0555555555555556, 1, 1, 1, 1, 0.0666666666666667, 1, 1, 1, 1, 1, 0.0526315789473684, 0.111111111111111, 1, 1, 0.222222222222222, 0.25, 1, 0.1875, 0.19047619047619, 0.25, 1, 0.111111111111111, 1, 1, 0.3125, 0.19047619047619, 0.285714285714286, 1, 0.222222222222222, 1, 1, 0.0714285714285714, 0.125, 0.125, 0.25, 0.263157894736842, 0.222222222222222, 1, 0.0666666666666667, 0.15, 0.133333333333333, 1, 1, 0.05, 0.222222222222222, 1, 0.142857142857143, 0.105263157894737, 1, 1, 0.1, 1, 1, 1, 1, 0.294117647058823, 0.142857142857143, 0.25, 0.1, 0.1875, 1, 0.666666666666667, 1, 1, 1, 0.142857142857143, 0.166666666666667, 0.2, 0.333333333333333, 1, 1, 1, 1, 1, 1, 0.0625, 0.117647058823529, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.25, 0.05, 1, 1, 1, 0.2, 1, 1, 1, 0.4, 0.0666666666666667, 1, 1, 1, 1, 1, 0.0625, 1, 1, 1, 1, 1, 1, 0.235294117647059, 1, 0.0588235294117647, 0.142857142857143, 1, 0.272727272727273, 1, 1, 1, 1, 0.333333333333333, 0.388888888888889, 1, 1, 0.166666666666667, 1, 0.210526315789474, 0.117647058823529, 0.0714285714285714, 0.142857142857143, 1, 0.2, 1, 1, 0.142857142857143, 1, 1, 0.0526315789473684, 0.125, 1, 0.238095238095238, 0.0526315789473684, 0.111111111111111, 1, 1, 1, 0.05, 1, 0.0833333333333333, 1, 1, 1, 1, 1, 0.2, 0.133333333333333, 1, 1, 0.153846153846154, 0.0625, 1, 0.0714285714285714, 1, 0.1875, 1, 1, 1, 0.0526315789473684, 0.111111111111111, 0.0625, 0.2, 1, 0.428571428571429, 1, 1, 1, 1, 1, 0.0625, 0.333333333333333, 0.125, 0.0769230769230769, 0.111111111111111, 0.25, 0.111111111111111, 1, 0.333333333333333, 1, 1, 1, 1, 0.235294117647059, 1, 1, 0.5, 0.142857142857143, 1, 0.5, 0.333333333333333, 1, 1, 1, 1, 0.2, 0.384615384615385, 0.35, 0.166666666666667, 0.0666666666666667, 0.294117647058823, 0.0625, 1, 0.5, 1, 0.15, 0.6, 1, 1, 1, 1, 1, 0.4, 0.181818181818182, 1, 0.2, 1, 0.0588235294117647, 0.272727272727273, 1, 1, 1, 1, 1, 1, 0.111111111111111, 0.25, 1, 1, 0.111111111111111, 1, 0.2, 1, 0.105263157894737, 0.5, 0.333333333333333, 1, 0.2, 0.333333333333333, 0.0833333333333333, 0.2, 1, 1, 1, 0.0714285714285714, 1, 0.0588235294117647, 0.333333333333333, 1, 1, 1, 0.142857142857143, 1, 0.166666666666667, 0.25, 0.181818181818182, 0.0952380952380952, 1, 0.263157894736842, 1, 1, 1, 0.157894736842105, 0.0454545454545454, 0.315789473684211, 0.0833333333333333, 0.25, 0.0526315789473684, 1, 1, 0.0833333333333333, 1, 1, 0.166666666666667, 1, 1, 1, 1, 0.238095238095238, 0.2, 0.333333333333333, 1, 0.25, 0.5, 1, 0.0625, 1, 0.133333333333333, 1, 1, 0.230769230769231, 1, 1, 1, 0.2, 1, 0.5, 0.1, 1, 1, 0.0555555555555556, 1, 1, 1, 1, 1, 1, 0.214285714285714, 1, 1, 1, 0.111111111111111, 0.0909090909090909, 0.25, 1, 0.125, 1, 1, 1, 1, 1, 1, 0.0625, 1, 0.166666666666667, 1, 1, 0.222222222222222, 1, 0.25, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 0.25, 1, 0.357142857142857, 1, 1, 0.142857142857143, 1, 1, 1, 1, 1, 0.461538461538462, 0.0625, 0.0666666666666667, 1, 0.0555555555555556, 1, 1, 1, 0.153846153846154, 0.2, 0.333333333333333, 1, 0.2, 0.25, 0.0526315789473684, 1, 0.333333333333333, 1, 1, 0.0625, 1, 1, 0.25, 0.0666666666666667, 0.166666666666667, 0.2, 1, 0.166666666666667, 1, 1, 1, 1, 1, 1, 1, 0.111111111111111, 0.176470588235294, 1, 0.142857142857143, 1, 0.0666666666666667, 0.0714285714285714, 1, 1, 0.176470588235294, 1, 0.0714285714285714, 1, 1, 0.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0833333333333333, 1, 0.333333333333333, 1, 0.272727272727273, 1, 0.411764705882353, 1, 1, 1, 1, 1, 0.333333333333333, 1, 1, 1, 1, 1, 1, 0.333333333333333, 0.352941176470588, 1, 1, 1, 1, 1, 1, 1, 1, 0.0769230769230769, 0.142857142857143, 1, 1, 1, 1, 1, 0.25, 0.45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.153846153846154, 1, 0.421052631578947, 1, 1, 1, 1, 1, 1, 1, 0.5, 1, 1, 1, 1, 1, 1, 0.222222222222222, 1, 0.333333333333333, 1, 0.142857142857143, 1, 1, 1, 1, 0.333333333333333, 1, 1, 0.0555555555555556, 0.5, 1, 0.2, 1, 1, 0.0434782608695652, 1, 1, 1, 0.476190476190476, 1, 0.0714285714285714, 0.153846153846154, 1, 1, 1, 1, 0.117647058823529, 0.333333333333333, 0.266666666666667, 1, 1, 1, 1, 1, 1, 0.1875, 0.3125, 1, 1, 0.142857142857143, 1, 0.5, 0.166666666666667, 1, 1, 1, 0.357142857142857, 0.0952380952380952, 1, 0.2, 1, 1, 1, 0.176470588235294, 0.636363636363636, 1, 0.3125, 1, 1, 1, 0.19047619047619, 0.333333333333333, 0.117647058823529, 0.470588235294118, 0.133333333333333, 1, 0.222222222222222, 1, 0.1875, 0.285714285714286, 1, 1, 0.470588235294118, 0.25, 1, 1, 1, 1, 1, 1, 0.19047619047619, 0.111111111111111, 1, 1, 0.19047619047619, 0.176470588235294, 0.176470588235294, 1, 1, 1, 0.571428571428571, 0.25, 1, 0.117647058823529, 1, 0.0588235294117647, 1, 0.5, 0.181818181818182, 1, 1, 0.333333333333333, 0.210526315789474, 0.3, 0.15, 0.166666666666667, 1, 0.235294117647059, 0.117647058823529, 0.157894736842105, 1, 1, 1, 0.0666666666666667, 1, 1, 0.1875, 0.533333333333333, 1, 0.4, 1, 1, 1, 0.181818181818182, 1, 1, 0.375, 1, 1, 1, 1, 0.352941176470588, 1, 0.222222222222222, 1, 0.368421052631579, 1, 1, 1, 0.0714285714285714, 1, 0.368421052631579, 0.2, 0.0526315789473684, 0.0526315789473684, 0.375, 0.05, 0.0555555555555556, 0.5, 0.0555555555555556, 0.0952380952380952, 0.0952380952380952, 0.0555555555555556, 1, 1, 1, 1, 1, 0.375, 1, 1, 0.285714285714286, 0.1875, 0.125, 1, 0.1875, 1, 1, 0.105263157894737, 0.25, 0.111111111111111, 1, 0.25, 2.19722457733622, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.39789527279837, 0, 2.484906649788, 2.83321334405622, 2.484906649788, 2.94443897916644, 2.70805020110221, 2.56494935746154, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 2.70805020110221, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.70805020110221, 2.77258872223978, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.484906649788, 2.39789527279837, 0, 1.94591014905531, 0, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.39789527279837, 0, 2.83321334405622, 0, 2.56494935746154, 0, 0, 2.484906649788, 2.19722457733622, 1.94591014905531, 0, 0, 2.77258872223978, 2.30258509299405, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.63905732961526, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 0, 2.63905732961526, 0, 2.77258872223978, 1.6094379124341, 0, 2.39789527279837, 0, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.79175946922805, 1.79175946922805, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 0, 2.484906649788, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 2.56494935746154, 1.79175946922805, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 2.70805020110221, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.63905732961526, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 2.89037175789616, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.19722457733622, 2.56494935746154, 0, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.19722457733622, 0, 2.39789527279837, 0, 2.89037175789616, 0, 2.30258509299405, 2.07944154167984, 0, 2.30258509299405, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 2.70805020110221, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.07944154167984, 1.38629436111989, 0, 2.56494935746154, 2.89037175789616, 1.94591014905531, 0, 2.19722457733622, 0, 0, 2.484906649788, 2.63905732961526, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.63905732961526, 2.63905732961526, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 2.83321334405622, 2.63905732961526, 0, 0, 2.89037175789616, 2.07944154167984, 0, 1.94591014905531, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 2.94443897916644, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.89037175789616, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.19722457733622, 0, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.70805020110221, 2.77258872223978, 2.63905732961526, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.94443897916644, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.63905732961526, 2.83321334405622, 2.19722457733622, 0, 0, 0, 2.94443897916644, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 2.63905732961526, 0, 2.56494935746154, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.70805020110221, 1.09861228866811, 2.56494935746154, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 2.484906649788, 0, 0, 0, 0, 2.56494935746154, 0, 0, 2.30258509299405, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 2.07944154167984, 2.63905732961526, 2.70805020110221, 2.39789527279837, 2.484906649788, 2.70805020110221, 0, 1.79175946922805, 0, 2.89037175789616, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 2.30258509299405, 0, 1.6094379124341, 0, 2.83321334405622, 2.19722457733622, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 1.09861228866811, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 2.56494935746154, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.94443897916644, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 1.38629436111989, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.77258872223978, 0.693147180559945, 0, 2.70805020110221, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 0, 0, 2.07944154167984, 0, 2.484906649788, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 1.94591014905531, 2.70805020110221, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.484906649788, 1.6094379124341, 1.09861228866811, 0, 2.19722457733622, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.70805020110221, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.19722457733622, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 2.94443897916644, 0, 0, 0, 2.39789527279837, 0, 2.56494935746154, 2.484906649788, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.56494935746154, 2.484906649788, 0, 0, 1.94591014905531, 0, 0.693147180559945, 2.70805020110221, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 2.63905732961526, 1.6094379124341, 0, 2.30258509299405, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.07944154167984, 2.63905732961526, 0, 2.07944154167984, 0, 2.484906649788, 1.79175946922805, 0, 0, 2.07944154167984, 1.94591014905531, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.19722457733622, 0, 0, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 0, 0, 1.94591014905531, 2.56494935746154, 0, 2.70805020110221, 0, 2.77258872223978, 0, 1.94591014905531, 2.19722457733622, 0, 0, 1.09861228866811, 2.56494935746154, 2.07944154167984, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 2.77258872223978, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 0, 2.39789527279837, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 2.77258872223978, 2.77258872223978, 2.30258509299405, 2.99573227355399, 2.70805020110221, 1.09861228866811, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 0, 2.56494935746154, 0, 0, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.56494935746154, 2.19722457733622, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.63905732961526, 2.70805020110221, 0, 2.39789527279837, 0, 2.484906649788, 2.83321334405622, 2.484906649788, 2.94443897916644, 2.70805020110221, 2.56494935746154, 0, 0, 2.56494935746154, 0, 1.09861228866811, 0, 0, 2.70805020110221, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.77258872223978, 2.77258872223978, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.484906649788, 2.39789527279837, 0, 1.94591014905531, 0, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.39789527279837, 0, 2.83321334405622, 0, 2.63905732961526, 0, 0, 2.484906649788, 2.19722457733622, 1.94591014905531, 0, 0, 2.83321334405622, 2.30258509299405, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 2.63905732961526, 0, 2.07944154167984, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.63905732961526, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 0, 2.70805020110221, 0, 2.77258872223978, 1.6094379124341, 0, 2.39789527279837, 0, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.79175946922805, 1.79175946922805, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 0, 2.484906649788, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 2.56494935746154, 1.79175946922805, 0, 2.63905732961526, 0, 0, 2.83321334405622, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 2.70805020110221, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.63905732961526, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.89037175789616, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 2.89037175789616, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.19722457733622, 2.56494935746154, 0, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.30258509299405, 0, 2.39789527279837, 0, 2.89037175789616, 0, 2.30258509299405, 2.07944154167984, 0, 2.39789527279837, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 2.70805020110221, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.07944154167984, 1.38629436111989, 0, 2.56494935746154, 2.89037175789616, 1.94591014905531, 0, 2.19722457733622, 0, 0, 2.484906649788, 2.63905732961526, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.63905732961526, 2.63905732961526, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 2.83321334405622, 2.63905732961526, 0, 0, 2.89037175789616, 2.07944154167984, 0, 1.94591014905531, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 1.94591014905531, 2.30258509299405, 2.63905732961526, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 2.99573227355399, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.89037175789616, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.19722457733622, 0, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.70805020110221, 2.77258872223978, 2.63905732961526, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.94443897916644, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.63905732961526, 2.89037175789616, 2.19722457733622, 0, 0, 0, 2.94443897916644, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.77258872223978, 0, 2.63905732961526, 0, 2.63905732961526, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.63905732961526, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 2.484906649788, 0, 0, 0, 0, 2.56494935746154, 0, 0, 2.30258509299405, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 2.07944154167984, 2.63905732961526, 2.70805020110221, 2.39789527279837, 2.484906649788, 2.70805020110221, 0, 1.79175946922805, 0, 2.89037175789616, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 2.30258509299405, 0, 1.6094379124341, 0, 2.83321334405622, 2.19722457733622, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 1.09861228866811, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 2.56494935746154, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.94443897916644, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 1.38629436111989, 2.89037175789616, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.77258872223978, 0.693147180559945, 0, 2.77258872223978, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.83321334405622, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.07944154167984, 0, 2.56494935746154, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 1.94591014905531, 2.77258872223978, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.484906649788, 1.6094379124341, 1.09861228866811, 0, 2.19722457733622, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.19722457733622, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 2.94443897916644, 0, 0, 0, 2.39789527279837, 0, 2.56494935746154, 2.484906649788, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.56494935746154, 2.484906649788, 0, 0, 1.94591014905531, 0, 0.693147180559945, 2.70805020110221, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 2.63905732961526, 1.6094379124341, 0, 2.30258509299405, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.07944154167984, 2.63905732961526, 0, 2.07944154167984, 0, 2.484906649788, 1.79175946922805, 0, 0, 2.07944154167984, 1.94591014905531, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.19722457733622, 0, 0, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 0, 0, 1.94591014905531, 2.56494935746154, 0, 2.77258872223978, 0, 2.77258872223978, 0, 1.94591014905531, 2.19722457733622, 0, 0, 1.09861228866811, 2.56494935746154, 2.07944154167984, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 2.77258872223978, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 0, 2.39789527279837, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 2.77258872223978, 2.77258872223978, 2.30258509299405, 2.99573227355399, 2.70805020110221, 1.09861228866811, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 0, 2.56494935746154, 0, 0, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.56494935746154, 4.44753141102122, 4.99845159291209, 0, 5.34401590408034, 0, 0, 0, 0, 4.83101957587157, 5.35483227176722, 4.64828823133551, 5.67983273376747, 0, 4.50275270048942, 0, 5.08026790650122, 4.01887317684174, 4.74803628912347, 4.76726706436959, 5.67983273376747, 5.33390925673613, 0, 0, 5.1108560844243, 0, 3.08840424440941, 0, 0, 4.50569057276674, 4.66942619676803, 4.76247163597859, 0, 0, 0, 0, 4.99845159291209, 4.99845159291209, 0, 0, 5.53467284838857, 4.22725649496332, 0, 4.62434881411479, 4.22725649496332, 0, 0, 0, 0, 0, 0, 4.62434881411479, 0, 0, 0, 6.21951483913015, 4.78260745120908, 0, 5.61931853978413, 0, 4.29125193071298, 0, 4.33926365795236, 0, 0, 0, 4.66238644547969, 4.5446052005862, 0, 5.19334452699367, 0, 0, 0, 0, 5.11144100764418, 0, 0, 5.19334452699367, 0, 0, 5.74780111248537, 0, 4.7055183345893, 0, 4.07165458324898, 0, 4.63886620569823, 0, 0, 4.86745621720887, 4.46879251920029, 5.04721600106418, 0, 0, 4.39100983020327, 5.53003753299194, 0, 4.33926365795236, 4.56305517742098, 0, 5.65878431143908, 4.64828823133551, 0, 5.12413202499285, 0, 0, 4.10664589052559, 0, 0, 0, 0, 0, 0, 0, 4.21967083832428, 0, 5.10707237571521, 0, 5.14370675653711, 0, 4.68642392575495, 4.42573704905238, 0, 0, 0, 0, 4.07165458324898, 0, 4.52347712814066, 0, 5.51827119446648, 5.47350720409147, 0, 5.1570174138768, 0, 0, 4.07236669574765, 0, 0, 4.7990672081384, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 4.884846781979, 0, 0, 0, 0, 4.5235034137663, 0, 0, 0, 0, 0, 5.12560202092812, 0, 5.25776147359819, 0, 0, 0, 0, 0, 4.83387324388568, 0, 0, 0, 0, 0, 3.34706178165003, 4.80127633477391, 0, 0, 0, 0, 0, 5.160057914294, 0, 0, 0, 0, 4.04892584252096, 4.85914167699424, 4.64277865104544, 4.15836761122694, 0, 5.36774651080398, 0, 0, 4.69825600766589, 3.39084573952066, 0, 4.89676443793737, 0, 3.08840424440941, 0, 0, 0, 4.62186501905693, 3.60726976753607, 0, 0, 0, 4.74043491710974, 4.49716217235633, 0, 0, 0, 0, 5.19334452699367, 0, 0, 0, 5.35423454179863, 0, 4.77664916956399, 3.61595654505816, 0, 5.11610741471868, 0, 0, 4.32728815974203, 0, 4.70912459505171, 0, 0, 0, 0, 0, 0, 3.3457944191942, 0, 0, 0, 0, 4.58288705273542, 5.24140438986225, 0, 0, 0, 0, 3.88593701386777, 0, 0, 4.04738859925053, 0, 5.79838345525049, 4.79010521948074, 0, 0, 4.42083205457769, 0, 4.30993989352961, 4.1284816161703, 5.25422570349852, 0, 0, 0, 0, 3.58475184409779, 0, 4.25827651245211, 4.7577540885072, 0, 4.67625737716732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59785873273209, 4.07165458324898, 0, 0, 0, 0, 0, 0, 0, 0, 4.84713376647489, 5.73745890024692, 0, 0, 0, 5.66540912546717, 0, 4.86388479634919, 4.47191349494482, 0, 4.86926607540753, 3.58475184409779, 0, 4.31167370817058, 5.36003743637899, 5.51283979854248, 0, 6.3072839060449, 0, 4.1290048107316, 0, 0, 0, 4.36391942896167, 0, 3.76988385024473, 0, 0, 4.85669186247291, 4.49190483512985, 0, 0, 0, 4.68585783885858, 5.32757781675594, 4.68986114974663, 0, 5.27792648060271, 0, 0, 4.13946901623151, 4.84131809231602, 0, 5.84250940544768, 0, 4.29324547337354, 0, 3.54527199062208, 5.60348909478433, 0, 5.07726252362091, 0, 0, 0, 4.29324547337354, 4.84237694862251, 0, 0, 0, 0, 5.22978387204385, 0, 4.22863684380868, 0, 4.61425048429258, 0, 0, 0, 0, 4.63813573323897, 0, 0, 0, 0, 0, 5.12023974854408, 4.69981829554092, 0, 0, 3.96232013129067, 3.52480227011357, 0, 4.53039313028758, 5.36774651080398, 4.60690480556876, 0, 5.43999342872825, 0, 0, 4.95451233379668, 3.76438600190667, 4.26333578266713, 0, 4.55232531716673, 0, 0, 5.57041513154971, 5.04484623147216, 4.53478694772284, 5.28494779936496, 5.01693219668386, 3.70314434961049, 0, 4.4653514153011, 4.51432204818341, 4.56009698259212, 0, 0, 4.29324547337354, 6.08493100169216, 0, 3.84946149531937, 4.55230873121526, 0, 0, 5.14335698681643, 0, 0, 0, 0, 4.58595099106456, 4.69744179171063, 5.30242614721084, 5.5643803790549, 4.38050462468806, 0, 6.44014395380952, 0, 0, 0, 5.26474315849566, 4.85584599927583, 3.92264183975476, 3.08840424440941, 0, 0, 0, 0, 0, 0, 4.5446052005862, 4.49867809138072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.35841132059817, 4.29324547337354, 0, 0, 0, 3.92264183975476, 0, 0, 0, 6.01011624405031, 4.50011610270839, 0, 0, 0, 0, 0, 4.5446052005862, 0, 0, 0, 0, 0, 0, 4.90917323454674, 0, 4.07165458324898, 4.91088091003882, 0, 5.65126354304392, 0, 0, 0, 0, 3.41653801180655, 5.02383185250756, 0, 0, 5.40426070147056, 0, 4.98412242854925, 5.78214134368246, 5.08688827549532, 4.60620768805788, 0, 3.92264183975476, 0, 0, 4.22441594942276, 0, 0, 4.18981842087419, 4.41035009595542, 0, 4.04443235322857, 4.84713376647489, 5.50046544695822, 0, 0, 0, 4.74474897925142, 0, 4.99254966308555, 0, 0, 0, 0, 0, 6.434963516161, 5.65207737549816, 0, 0, 5.40519841661383, 4.5446052005862, 0, 5.36186261430798, 0, 4.38050462468806, 0, 0, 0, 4.81913040789207, 4.09928418046554, 4.88215787709743, 6.21951483913015, 0, 4.48481037272562, 0, 0, 0, 0, 0, 4.5446052005862, 3.58475184409779, 5.29603230413446, 4.21701689218848, 4.17660530186524, 5.21400702776104, 3.42732561175211, 0, 4.55542168930457, 0, 0, 0, 0, 4.54866970987183, 0, 0, 5.28039701851747, 5.41993634393776, 0, 4.74133078672761, 4.75687943510011, 0, 0, 0, 0, 4.39955114326686, 5.27358834023212, 4.5669756529141, 4.9759457525241, 3.89326535001852, 5.31462430211876, 4.72202319875715, 0, 5.38695112076559, 0, 3.89700334539345, 3.67856534568568, 0, 0, 0, 0, 0, 4.93466699780743, 3.72334667652189, 0, 3.92264183975476, 0, 4.33926365795236, 4.01190174316327, 0, 0, 0, 0, 0, 0, 5.06292492954673, 5.44516689179994, 0, 0, 5.57428379256295, 0, 4.48523325714668, 0, 4.24684542568535, 4.74133078672761, 3.91079019238764, 0, 4.48523325714668, 3.83478864566511, 4.42767817273019, 4.62533168329173, 0, 0, 0, 5.66443431573979, 0, 4.07165458324898, 6.34476620622866, 0, 0, 0, 4.74043491710974, 0, 5.24973641061837, 3.89648682817166, 5.42984297823385, 4.94654352851211, 0, 5.39249236749112, 0, 0, 0, 4.24119248281048, 4.84039356810966, 5.21095252926159, 4.39926018075244, 4.8661783604112, 4.84713376647489, 0, 0, 5.6401157843335, 0, 0, 3.87482237405972, 0, 0, 0, 0, 5.51827119446648, 6.21951483913015, 3.33408199411394, 0, 5.51934486271032, 4.40490312214513, 0, 4.5446052005862, 0, 4.87263832584576, 0, 0, 6.59943928500523, 0, 0, 0, 5.35093802844997, 0, 5.24140438986225, 4.21564624261625, 0, 0, 3.8393224031938, 0, 0, 0, 0, 0, 0, 4.22423247707574, 0, 0, 0, 4.31511637214836, 6.44266670765523, 3.42845906532466, 0, 4.41035009595542, 0, 0, 0, 0, 0, 0, 4.5446052005862, 0, 4.6236345630258, 0, 0, 3.74056545101946, 0, 5.1108560844243, 0, 0, 0, 0, 4.65666750266804, 0, 0, 0, 0, 4.42332641725864, 0, 5.13979192553583, 0, 0, 5.31551469081168, 0, 0, 0, 0, 0, 5.45980510621828, 4.5446052005862, 4.72546025335497, 0, 4.81234830694186, 0, 0, 0, 5.55169762085876, 6.14943089913506, 3.41653801180655, 0, 4.269286190978, 5.27468260273865, 4.49408709756309, 0, 4.49136758829493, 0, 0, 4.5446052005862, 0, 0, 4.50446392083745, 5.79140843890437, 3.93665251167916, 3.28350214332539, 0, 4.89051044980043, 0, 0, 0, 0, 0, 0, 0, 4.65077231506732, 5.15612886274539, 0, 3.91406238230311, 0, 5.86372156207979, 5.68299659533049, 0, 0, 5.15612886274539, 0, 5.66992544137339, 0, 0, 6.06384931002383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.86368999783554, 0, 3.58475184409779, 0, 4.82055439233373, 0, 4.85421168778822, 0, 0, 0, 0, 0, 3.41653801180655, 0, 0, 0, 0, 0, 0, 5.20681227879862, 4.50651879329543, 0, 0, 0, 0, 0, 0, 0, 0, 4.04924321801926, 4.58466482716377, 0, 0, 0, 0, 0, 4.85243399397363, 3.81453902658666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.50079441010229, 0, 5.36395188348553, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 5.08314654283621, 0, 4.97832840314828, 0, 4.54914267404179, 0, 0, 0, 0, 5.16931459555937, 0, 0, 4.36809005278833, 5.24140438986225, 0, 4.86175317682268, 0, 0, 5.70255144824812, 0, 0, 0, 4.61167819487854, 0, 3.97734686199437, 4.46647508659293, 0, 0, 0, 0, 4.3915051987931, 4.02198640305586, 5.32200808519659, 0, 0, 0, 0, 0, 0, 4.58808556207911, 4.38036055806098, 0, 0, 4.2477296409552, 0, 7.04875931191986, 5.28020614597096, 0, 0, 0, 5.64492710128744, 5.31297081939636, 0, 5.92027610321489, 0, 0, 0, 4.5799001110863, 5.19107953392195, 0, 5.76914879061123, 0, 0, 0, 4.60460897032093, 5.72856453189238, 4.9313620593995, 4.55572874074827, 5.31937215100257, 0, 4.92776136173484, 0, 4.9274331379247, 5.61090153519716, 0, 0, 4.55572874074827, 4.63155812754724, 0, 0, 0, 0, 0, 0, 5.41252929660805, 4.86476603809665, 0, 0, 4.57510137993917, 5.80115125551186, 5.80115125551186, 0, 0, 0, 4.79447530907979, 5.7805172508112, 0, 4.80427798454113, 0, 4.39904481168002, 0, 4.88127948385489, 5.19197800428063, 0, 0, 5.35950350029299, 5.08597058872868, 5.3602485382648, 5.37638184997943, 4.57618733287019, 0, 4.30448167573554, 4.9313620593995, 4.7467434878128, 0, 0, 0, 4.49774775798938, 0, 0, 5.20551093132143, 4.91958381391295, 0, 5.563650238485, 0, 0, 0, 4.38747801900603, 0, 0, 5.47184827462, 0, 0, 0, 0, 6.8231741340509, 0, 4.49647981565392, 0, 4.63041404799857, 0, 0, 0, 4.22567775799672, 0, 5.54548414340213, 5.14872468151357, 3.93008266118622, 3.93008266118622, 5.3046285040396, 4.19322327372815, 4.43168054139015, 6.70299222946026, 4.43168054139015, 4.32467547269038, 4.32467547269038, 4.43168054139015, 0, 0, 0, 0, 0, 5.0976405203171, 0, 0, 4.93550764350809, 4.28739733718854, 4.55298892193113, 0, 4.37163861675582, 0, 0, 4.1210240830879, 4.71946288663214, 4.68026528939617, 0, 5.42053219602931, 4.47023873528705, 5.35075151128298, 0, 5.6343520367362, 0, 0, 0, 0, 5.32451512184451, 5.5434760889105, 5.33027299411247, 6.01283187053194, 0, 5.44465284282755, 0, 5.60447738663069, 4.05819432772927, 4.83843188134675, 5.50803101680629, 6.01283187053194, 5.75707815623697, 0, 0, 5.76691919422696, 0, 3.09725524527614, 0, 0, 4.65602993211273, 4.96715230869194, 5.0460270609084, 0, 0, 0, 0, 5.35075151128298, 5.35075151128298, 0, 0, 5.82638765873269, 4.33092775741833, 0, 5.33426726720189, 4.33092775741833, 0, 0, 0, 0, 0, 0, 5.33426726720189, 0, 0, 0, 6.4085059170199, 5.26148526435787, 0, 6.77189397463612, 0, 4.33309365234227, 0, 4.39306520312915, 0, 0, 0, 5.28987653716311, 4.70797731248539, 0, 5.29854930064539, 0, 0, 0, 0, 5.71935101333561, 0, 0, 5.29854930064539, 0, 0, 5.77761706213867, 0, 4.75419843168543, 0, 4.12545612842576, 0, 5.37331133484265, 0, 0, 4.97337652407054, 4.70683990433408, 6.09030310584464, 0, 0, 4.59267771146204, 5.74472828954025, 0, 4.39306520312915, 4.9594466010235, 0, 5.65878431143908, 5.33027299411247, 0, 5.15405393436842, 0, 0, 4.79271867779565, 0, 0, 0, 0, 0, 0, 0, 4.35830690668824, 0, 5.38472325370722, 0, 6.16295295944043, 0, 4.82105667516848, 4.54936121111849, 0, 0, 0, 0, 4.12545612842576, 0, 4.80602340533701, 0, 5.57358026729663, 5.48312574104513, 0, 5.26792998492256, 0, 0, 4.1952839825337, 0, 0, 5.03303423782249, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 5.57392840480265, 0, 0, 0, 0, 4.74622331562497, 0, 0, 0, 0, 0, 5.56616750491603, 0, 5.29670792683, 0, 0, 0, 0, 0, 4.99271395081408, 0, 0, 0, 0, 0, 3.41372504618776, 4.96285090245367, 0, 0, 0, 0, 0, 5.54550201403224, 0, 0, 0, 0, 4.13198736389855, 4.91507097210121, 4.70065323315218, 4.18161179637905, 0, 5.76551299474612, 0, 0, 5.00122572037286, 3.39527123995403, 0, 4.99916881046045, 0, 3.09725524527614, 0, 0, 0, 4.82450059374518, 3.66185287494411, 0, 0, 0, 5.28991528237199, 4.55646570202336, 0, 0, 0, 0, 5.29854930064539, 0, 0, 0, 5.97468587107694, 0, 5.17281500572016, 4.23359731002858, 0, 5.45563475931033, 0, 0, 4.52897666335624, 0, 4.87185152412934, 0, 0, 0, 0, 0, 0, 3.37577274353353, 0, 0, 0, 0, 5.10041650829154, 5.24140438986225, 0, 0, 0, 0, 3.95129473852242, 0, 0, 4.11976254800108, 0, 6.01420102457481, 4.92778612829905, 0, 0, 4.56377011384001, 0, 4.58742555968595, 4.47115871287075, 5.65748539315244, 0, 0, 0, 0, 3.60832473391076, 0, 4.51310522772913, 5.06103035286723, 0, 4.81917803006731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.66243764960628, 4.12545612842576, 0, 0, 0, 0, 0, 0, 0, 0, 5.08886396293006, 5.80402577087784, 0, 0, 0, 5.93115712317424, 0, 4.91648718317505, 4.6286839565979, 0, 5.03580666251931, 3.60832473391076, 0, 4.47372623083586, 5.66396960914285, 5.52342408043357, 0, 6.3072839060449, 0, 4.39263629341855, 0, 0, 0, 4.5461543147591, 0, 4.00929570759838, 0, 0, 5.16789386079396, 4.62735418855057, 0, 0, 0, 5.01703737427696, 5.6353715526086, 5.0796161097687, 0, 5.65024767075424, 0, 0, 4.21299645646799, 5.71469117325511, 0, 6.17772832844847, 0, 4.37172777575117, 0, 3.5532198105541, 6.9402822383012, 0, 5.9217945465382, 0, 0, 0, 4.37172777575117, 4.9069454539305, 0, 0, 0, 0, 5.30241986053923, 0, 4.38644400428626, 0, 4.91647000514191, 0, 0, 0, 0, 5.19218418054663, 0, 0, 0, 0, 0, 5.54651041134472, 4.83230580737543, 0, 0, 4.01551444343638, 3.8004288232462, 0, 5.24062714859501, 5.76551299474612, 4.67254124106144, 0, 6.07837140863533, 0, 0, 5.38839219122816, 3.80230215365203, 4.63740328603195, 0, 4.84593075750505, 0, 0, 5.88609925677352, 5.33210621460776, 4.75421003053851, 5.76484379748952, 5.89659709112448, 3.97408488565484, 0, 4.54225251749011, 4.58792163582769, 5.40296101260371, 0, 0, 4.37172777575117, 7.20232147520751, 0, 3.88094293727598, 4.85193539538581, 0, 0, 5.38302151981881, 0, 0, 0, 0, 5.02338495590354, 4.97314182720626, 5.36691203738778, 6.17926458658832, 4.6032812436626, 0, 6.44014395380952, 0, 0, 0, 5.66155241911599, 5.07481428379687, 3.96913521083557, 3.09725524527614, 0, 0, 0, 0, 0, 0, 4.70797731248539, 4.53867783270312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.68068903261977, 4.37172777575117, 0, 0, 0, 3.96913521083557, 0, 0, 0, 6.25236028863335, 4.5753207831737, 0, 0, 0, 0, 0, 4.70797731248539, 0, 0, 0, 0, 0, 0, 4.92758031518272, 0, 4.12545612842576, 5.01751268930306, 0, 5.65898556774226, 0, 0, 0, 0, 3.42538901267328, 5.12863713949509, 0, 0, 5.40426070147056, 0, 5.06580665006672, 6.21338130580672, 5.32882049337723, 4.74338227484255, 0, 3.96913521083557, 0, 0, 4.99239347343115, 0, 0, 4.31100039129807, 4.54919797955033, 0, 4.11328195095659, 5.08886396293006, 5.56001629968898, 0, 0, 0, 5.04957504841723, 0, 5.21164799965415, 0, 0, 0, 0, 0, 6.53611072336905, 5.70970640406628, 0, 0, 5.45984600559831, 4.70797731248539, 0, 5.66053003067177, 0, 4.6032812436626, 0, 0, 0, 5.03537990117429, 4.11830704728802, 5.00602244294408, 6.4085059170199, 0, 4.60651061546597, 0, 0, 0, 0, 0, 4.70797731248539, 3.60832473391076, 5.76154401639335, 4.27793745933681, 4.39439226054663, 5.25017208436427, 3.45524996202877, 0, 5.24677064579828, 0, 0, 0, 0, 4.72170868076293, 0, 0, 5.4880782540335, 5.76456705787329, 0, 4.77077456462009, 4.841015176395, 0, 0, 0, 0, 4.5212513860072, 5.2830036814102, 4.755199365565, 5.14934061466492, 4.00504428048212, 5.63828357307054, 4.83375744666124, 0, 5.60282829854662, 0, 4.02330675409165, 3.69328723463192, 0, 0, 0, 0, 0, 5.00448478635041, 4.20025154332949, 0, 3.96913521083557, 0, 4.39306520312915, 4.04364205144183, 0, 0, 0, 0, 0, 0, 6.23000829100607, 5.83574947081631, 0, 0, 5.87382269094248, 0, 4.76317930417855, 0, 4.45182138679726, 4.77077456462009, 3.91964119325437, 0, 4.76317930417855, 3.84363964653184, 4.49769249551306, 4.78506663979837, 0, 0, 0, 5.69425658902292, 0, 4.12545612842576, 6.34815283918815, 0, 0, 0, 5.28991528237199, 0, 5.3132574731509, 3.91868336469722, 5.84086615101475, 5.0482983374706, 0, 5.54979946161498, 0, 0, 0, 4.26909284304059, 4.9016554789553, 5.38319730459238, 4.41643187636514, 5.85921258011345, 5.08886396293006, 0, 0, 5.70404502673787, 0, 0, 3.91260010440766, 0, 0, 0, 0, 5.57358026729663, 6.4085059170199, 3.33850749454731, 0, 5.74295033626082, 4.40490312214513, 0, 4.70797731248539, 0, 5.22015947491138, 0, 0, 6.68420139122128, 0, 0, 0, 5.37309470532579, 0, 5.24140438986225, 4.40005844316325, 0, 0, 3.92723752749359, 0, 0, 0, 0, 0, 0, 4.54816510994007, 0, 0, 0, 4.48841506742005, 6.54452980998457, 3.43435973256915, 0, 4.54919797955033, 0, 0, 0, 0, 0, 0, 4.70797731248539, 0, 4.73570225663244, 0, 0, 3.77684008905211, 0, 5.76691919422696, 0, 0, 0, 0, 5.43134497884026, 0, 0, 0, 0, 4.58127261800614, 0, 5.2432682866376, 0, 0, 5.85458625075546, 0, 0, 0, 0, 0, 5.45980510621828, 4.70797731248539, 4.77812105375205, 0, 5.04380114925574, 0, 0, 0, 5.64448746911029, 6.19983936442748, 3.42538901267328, 0, 4.44894370843512, 5.79730383363085, 4.69161780331095, 0, 5.27300130310585, 0, 0, 4.70797731248539, 0, 0, 4.5089794314501, 5.82639327749719, 3.97973596412231, 3.56912563841365, 0, 5.39454333294401, 0, 0, 0, 0, 0, 0, 0, 4.76597454786299, 5.48414981820747, 0, 4.1147740786264, 0, 5.89140780104357, 5.72067257535352, 0, 0, 5.48414981820747, 0, 5.70760142139642, 0, 0, 6.29537545475406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.06762901757681, 0, 3.60832473391076, 0, 5.57974701785545, 0, 5.01248831051847, 0, 0, 0, 0, 0, 3.42538901267328, 0, 0, 0, 0, 0, 0, 5.42055352163528, 4.90048116201781, 0, 0, 0, 0, 0, 0, 0, 0, 4.12224181396152, 4.72247810373009, 0, 0, 0, 0, 0, 4.90511322208062, 3.8321237025774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.58238271712997, 0, 5.61728951257107, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 5.18111223181278, 0, 5.13995698613151, 0, 4.69341066687911, 0, 0, 0, 0, 5.32712175603695, 0, 0, 4.56601253623096, 5.24140438986225, 0, 4.96690654975619, 0, 0, 5.82766293014659, 0, 0, 0, 4.65902657336049, 0, 4.00789727353636, 4.58360457071026, 0, 0, 0, 0, 4.69961409468953, 4.21212244361495, 5.55447993054684, 0, 0, 0, 0, 0, 0, 5.37078593035236, 4.44317393860099, 0, 0, 4.27626074928957, 0, 7.04875931191986, 5.47867612519084, 0, 0, 0, 5.64694347314414, 5.68648655306865, 0, 6.28513400787422, 0, 0, 0, 4.68883257303432, 5.20652358331862, 0, 5.97173523410365, 0, 0, 0, 4.72973426064922, 5.85673440852228, 5.24243031072283, 4.57900133692927, 5.52682537551514, 0, 4.93658653281865, 0, 5.53133142169316, 5.92774694484866, 0, 0, 4.57900133692927, 5.21624577345214, 0, 0, 0, 0, 0, 0, 5.98708163489918, 5.2019356601785, 0, 0, 4.97216862014078, 5.83895221574473, 5.83895221574473, 0, 0, 0, 5.38784764241508, 5.80192951992705, 0, 5.15061155795185, 0, 4.92659387279814, 0, 4.91877768235145, 5.25157971638882, 0, 0, 5.36998330961081, 5.85997362889364, 5.60994472118095, 5.54884190425618, 4.91780770420125, 0, 4.41449678254794, 5.24243031072283, 4.77719937456903, 0, 0, 0, 4.64259187783054, 0, 0, 5.33455071048185, 5.04891675598559, 0, 5.563650238485, 0, 0, 0, 4.47181812794453, 0, 0, 5.97347344970587, 0, 0, 0, 0, 6.86551896304079, 0, 4.52193940460828, 0, 4.67667641593985, 0, 0, 0, 4.26977701962503, 0, 5.61930322507552, 5.88386844662172, 3.99196200339905, 3.99196200339905, 5.73866199358135, 4.24154897647298, 4.86075658586363, 6.70299222946026, 4.86075658586363, 4.44885289590563, 4.44885289590563, 4.86075658586363, 0, 0, 0, 0, 0, 5.99009515855683, 0, 0, 6.4448989910341, 4.54490718044105, 5.06289198648224, 0, 4.61085036958552, 0, 0, 4.22970084972604, 5.04703226132422, 4.79039157739965, 0, 5.51005087363519, 4.44753141102122, 4.99845159291209, 0, 5.34401590408034, 0, 0, 0, 0, 4.83101957587157, 5.35483227176722, 4.64828823133551, 5.67983273376747, 0, 4.50275270048942, 0, 5.08026790650122, 4.01887317684174, 4.74803628912347, 4.76726706436959, 5.67983273376747, 5.33390925673613, 0, 0, 5.1108560844243, 0, 3.08840424440941, 0, 0, 4.50569057276674, 4.66942619676803, 4.76247163597859, 0, 0, 0, 0, 4.99845159291209, 4.99845159291209, 0, 0, 5.53467284838857, 4.22725649496332, 0, 4.62434881411479, 4.22725649496332, 0, 0, 0, 0, 0, 0, 4.62434881411479, 0, 0, 0, 6.21951483913015, 4.78260745120908, 0, 5.61931853978413, 0, 4.29125193071298, 0, 4.33926365795236, 0, 0, 0, 4.66238644547969, 4.5446052005862, 0, 5.19334452699367, 0, 0, 0, 0, 5.11144100764418, 0, 0, 5.19334452699367, 0, 0, 5.74780111248537, 0, 4.7055183345893, 0, 4.07165458324898, 0, 4.63886620569823, 0, 0, 4.86745621720887, 4.46879251920029, 5.04721600106418, 0, 0, 4.39100983020327, 5.53003753299194, 0, 4.33926365795236, 4.56305517742098, 0, 5.65878431143908, 4.64828823133551, 0, 5.12413202499285, 0, 0, 4.10664589052559, 0, 0, 0, 0, 0, 0, 0, 4.21967083832428, 0, 5.10707237571521, 0, 5.14370675653711, 0, 4.68642392575495, 4.42573704905238, 0, 0, 0, 0, 4.07165458324898, 0, 4.52347712814066, 0, 5.51827119446648, 5.47350720409147, 0, 5.1570174138768, 0, 0, 4.07236669574765, 0, 0, 4.7990672081384, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 4.884846781979, 0, 0, 0, 0, 4.5235034137663, 0, 0, 0, 0, 0, 5.12560202092812, 0, 5.25776147359819, 0, 0, 0, 0, 0, 4.83387324388568, 0, 0, 0, 0, 0, 3.34706178165003, 4.80127633477391, 0, 0, 0, 0, 0, 5.160057914294, 0, 0, 0, 0, 4.04892584252096, 4.85914167699424, 4.64277865104544, 4.15836761122694, 0, 5.36774651080398, 0, 0, 4.69825600766589, 3.39084573952066, 0, 4.89676443793737, 0, 3.08840424440941, 0, 0, 0, 4.62186501905693, 3.60726976753607, 0, 0, 0, 4.74043491710974, 4.49716217235633, 0, 0, 0, 0, 5.19334452699367, 0, 0, 0, 5.35423454179863, 0, 4.77664916956399, 3.61595654505816, 0, 5.11610741471868, 0, 0, 4.32728815974203, 0, 4.70912459505171, 0, 0, 0, 0, 0, 0, 3.3457944191942, 0, 0, 0, 0, 4.58288705273542, 5.24140438986225, 0, 0, 0, 0, 3.88593701386777, 0, 0, 4.04738859925053, 0, 5.79838345525049, 4.79010521948074, 0, 0, 4.42083205457769, 0, 4.30993989352961, 4.1284816161703, 5.25422570349852, 0, 0, 0, 0, 3.58475184409779, 0, 4.25827651245211, 4.7577540885072, 0, 4.67625737716732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59785873273209, 4.07165458324898, 0, 0, 0, 0, 0, 0, 0, 0, 4.84713376647489, 5.73745890024692, 0, 0, 0, 5.66540912546717, 0, 4.86388479634919, 4.47191349494482, 0, 4.86926607540753, 3.58475184409779, 0, 4.31167370817058, 5.36003743637899, 5.51283979854248, 0, 6.3072839060449, 0, 4.1290048107316, 0, 0, 0, 4.36391942896167, 0, 3.76988385024473, 0, 0, 4.85669186247291, 4.49190483512985, 0, 0, 0, 4.68585783885858, 5.32757781675594, 4.68986114974663, 0, 5.27792648060271, 0, 0, 4.13946901623151, 4.84131809231602, 0, 5.84250940544768, 0, 4.29324547337354, 0, 3.54527199062208, 5.60348909478433, 0, 5.07726252362091, 0, 0, 0, 4.29324547337354, 4.84237694862251, 0, 0, 0, 0, 5.22978387204385, 0, 4.22863684380868, 0, 4.61425048429258, 0, 0, 0, 0, 4.63813573323897, 0, 0, 0, 0, 0, 5.12023974854408, 4.69981829554092, 0, 0, 3.96232013129067, 3.52480227011357, 0, 4.53039313028758, 5.36774651080398, 4.60690480556876, 0, 5.43999342872825, 0, 0, 4.95451233379668, 3.76438600190667, 4.26333578266713, 0, 4.55232531716673, 0, 0, 5.57041513154971, 5.04484623147216, 4.53478694772284, 5.28494779936496, 5.01693219668386, 3.70314434961049, 0, 4.4653514153011, 4.51432204818341, 4.56009698259212, 0, 0, 4.29324547337354, 6.08493100169216, 0, 3.84946149531937, 4.55230873121526, 0, 0, 5.14335698681643, 0, 0, 0, 0, 4.58595099106456, 4.69744179171063, 5.30242614721084, 5.5643803790549, 4.38050462468806, 0, 6.44014395380952, 0, 0, 0, 5.26474315849566, 4.85584599927583, 3.92264183975476, 3.08840424440941, 0, 0, 0, 0, 0, 0, 4.5446052005862, 4.49867809138072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.35841132059817, 4.29324547337354, 0, 0, 0, 3.92264183975476, 0, 0, 0, 6.01011624405031, 4.50011610270839, 0, 0, 0, 0, 0, 4.5446052005862, 0, 0, 0, 0, 0, 0, 4.90917323454674, 0, 4.07165458324898, 4.91088091003882, 0, 5.65126354304392, 0, 0, 0, 0, 3.41653801180655, 5.02383185250756, 0, 0, 5.40426070147056, 0, 4.98412242854925, 5.78214134368246, 5.08688827549532, 4.60620768805788, 0, 3.92264183975476, 0, 0, 4.22441594942276, 0, 0, 4.18981842087419, 4.41035009595542, 0, 4.04443235322857, 4.84713376647489, 5.50046544695822, 0, 0, 0, 4.74474897925142, 0, 4.99254966308555, 0, 0, 0, 0, 0, 6.434963516161, 5.65207737549816, 0, 0, 5.40519841661383, 4.5446052005862, 0, 5.36186261430798, 0, 4.38050462468806, 0, 0, 0, 4.81913040789207, 4.09928418046554, 4.88215787709743, 6.21951483913015, 0, 4.48481037272562, 0, 0, 0, 0, 0, 4.5446052005862, 3.58475184409779, 5.29603230413446, 4.21701689218848, 4.17660530186524, 5.21400702776104, 3.42732561175211, 0, 4.55542168930457, 0, 0, 0, 0, 4.54866970987183, 0, 0, 5.28039701851747, 5.41993634393776, 0, 4.74133078672761, 4.75687943510011, 0, 0, 0, 0, 4.39955114326686, 5.27358834023212, 4.5669756529141, 4.9759457525241, 3.89326535001852, 5.31462430211876, 4.72202319875715, 0, 5.38695112076559, 0, 3.89700334539345, 3.67856534568568, 0, 0, 0, 0, 0, 4.93466699780743, 3.72334667652189, 0, 3.92264183975476, 0, 4.33926365795236, 4.01190174316327, 0, 0, 0, 0, 0, 0, 5.06292492954673, 5.44516689179994, 0, 0, 5.57428379256295, 0, 4.48523325714668, 0, 4.24684542568535, 4.74133078672761, 3.91079019238764, 0, 4.48523325714668, 3.83478864566511, 4.42767817273019, 4.62533168329173, 0, 0, 0, 5.66443431573979, 0, 4.07165458324898, 6.34476620622866, 0, 0, 0, 4.74043491710974, 0, 5.24973641061837, 3.89648682817166, 5.42984297823385, 4.94654352851211, 0, 5.39249236749112, 0, 0, 0, 4.24119248281048, 4.84039356810966, 5.21095252926159, 4.39926018075244, 4.8661783604112, 4.84713376647489, 0, 0, 5.6401157843335, 0, 0, 3.87482237405972, 0, 0, 0, 0, 5.51827119446648, 6.21951483913015, 3.33408199411394, 0, 5.51934486271032, 4.40490312214513, 0, 4.5446052005862, 0, 4.87263832584576, 0, 0, 6.59943928500523, 0, 0, 0, 5.35093802844997, 0, 5.24140438986225, 4.21564624261625, 0, 0, 3.8393224031938, 0, 0, 0, 0, 0, 0, 4.22423247707574, 0, 0, 0, 4.31511637214836, 6.44266670765523, 3.42845906532466, 0, 4.41035009595542, 0, 0, 0, 0, 0, 0, 4.5446052005862, 0, 4.6236345630258, 0, 0, 3.74056545101946, 0, 5.1108560844243, 0, 0, 0, 0, 4.65666750266804, 0, 0, 0, 0, 4.42332641725864, 0, 5.13979192553583, 0, 0, 5.31551469081168, 0, 0, 0, 0, 0, 5.45980510621828, 4.5446052005862, 4.72546025335497, 0, 4.81234830694186, 0, 0, 0, 5.55169762085876, 6.14943089913506, 3.41653801180655, 0, 4.269286190978, 5.27468260273865, 4.49408709756309, 0, 4.49136758829493, 0, 0, 4.5446052005862, 0, 0, 4.50446392083745, 5.79140843890437, 3.93665251167916, 3.28350214332539, 0, 4.89051044980043, 0, 0, 0, 0, 0, 0, 0, 4.65077231506732, 5.15612886274539, 0, 3.91406238230311, 0, 5.86372156207979, 5.68299659533049, 0, 0, 5.15612886274539, 0, 5.66992544137339, 0, 0, 6.06384931002383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.86368999783554, 0, 3.58475184409779, 0, 4.82055439233373, 0, 4.85421168778822, 0, 0, 0, 0, 0, 3.41653801180655, 0, 0, 0, 0, 0, 0, 5.20681227879862, 4.50651879329543, 0, 0, 0, 0, 0, 0, 0, 0, 4.04924321801926, 4.58466482716377, 0, 0, 0, 0, 0, 4.85243399397363, 3.81453902658666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.50079441010229, 0, 5.36395188348553, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 5.08314654283621, 0, 4.97832840314828, 0, 4.54914267404179, 0, 0, 0, 0, 5.16931459555937, 0, 0, 4.36809005278833, 5.24140438986225, 0, 4.86175317682268, 0, 0, 5.70255144824812, 0, 0, 0, 4.61167819487854, 0, 3.97734686199437, 4.46647508659293, 0, 0, 0, 0, 4.3915051987931, 4.02198640305586, 5.32200808519659, 0, 0, 0, 0, 0, 0, 4.58808556207911, 4.38036055806098, 0, 0, 4.2477296409552, 0, 7.04875931191986, 5.28020614597096, 0, 0, 0, 5.64492710128744, 5.31297081939636, 0, 5.92027610321489, 0, 0, 0, 4.5799001110863, 5.19107953392195, 0, 5.76914879061123, 0, 0, 0, 4.60460897032093, 5.72856453189238, 4.9313620593995, 4.55572874074827, 5.31937215100257, 0, 4.92776136173484, 0, 4.9274331379247, 5.61090153519716, 0, 0, 4.55572874074827, 4.63155812754724, 0, 0, 0, 0, 0, 0, 5.41252929660805, 4.86476603809665, 0, 0, 4.57510137993917, 5.80115125551186, 5.80115125551186, 0, 0, 0, 4.79447530907979, 5.7805172508112, 0, 4.80427798454113, 0, 4.39904481168002, 0, 4.88127948385489, 5.19197800428063, 0, 0, 5.35950350029299, 5.08597058872868, 5.3602485382648, 5.37638184997943, 4.57618733287019, 0, 4.30448167573554, 4.9313620593995, 4.7467434878128, 0, 0, 0, 4.49774775798938, 0, 0, 5.20551093132143, 4.91958381391295, 0, 5.563650238485, 0, 0, 0, 4.38747801900603, 0, 0, 5.47184827462, 0, 0, 0, 0, 6.8231741340509, 0, 4.49647981565392, 0, 4.63041404799857, 0, 0, 0, 4.22567775799672, 0, 5.54548414340213, 5.14872468151357, 3.93008266118622, 3.93008266118622, 5.3046285040396, 4.19322327372815, 4.43168054139015, 6.70299222946026, 4.43168054139015, 4.32467547269038, 4.32467547269038, 4.43168054139015, 0, 0, 0, 0, 0, 5.0976405203171, 0, 0, 4.93550764350809, 4.28739733718854, 4.55298892193113, 0, 4.37163861675582, 0, 0, 4.1210240830879, 4.71946288663214, 4.68026528939617, 0, 5.42053219602931, 0.994920332982088, 0.934158796642302, 1, 0.948470359898909, 1, 1, 1, 1, 0.907316340609438, 0.965970121613647, 0.872054440076476, 0.944618585063645, 1, 0.827004554830537, 1, 0.906465947854485, 0.990310678170621, 0.981317171670479, 0.865512022322233, 0.944618585063645, 0.926495891141863, 1, 1, 0.886236812463158, 1, 0.997142308216209, 1, 1, 0.967710826275172, 0.940061006101439, 0.943806202085891, 1, 1, 1, 1, 0.934158796642302, 0.934158796642302, 1, 1, 0.949932131634446, 0.976062574057618, 1, 0.866913595152595, 0.976062574057618, 1, 1, 1, 1, 1, 1, 0.866913595152595, 1, 1, 1, 0.970509338629489, 0.908984290730076, 1, 0.829800135801163, 1, 0.990343683985072, 1, 0.987753073835903, 1, 1, 1, 0.881379066737174, 0.965298874430441, 1, 0.98014460795167, 1, 1, 1, 1, 0.893709967394205, 1, 1, 0.98014460795167, 1, 1, 0.994839403627373, 1, 0.989760608902712, 1, 0.986958643237999, 1, 0.863316103725092, 1, 1, 0.978702536124294, 0.949425221598338, 0.828729853563536, 1, 1, 0.956089259049146, 0.962628213950657, 1, 0.987753073835903, 0.920073456679479, 1, 1, 0.872054440076476, 1, 0.994194490442555, 1, 1, 0.856851020601608, 1, 1, 1, 1, 1, 1, 1, 0.968190384171612, 1, 0.948437298462673, 1, 0.834617234690711, 1, 0.972074016448102, 0.972826039452754, 1, 1, 1, 1, 0.986958643237999, 1, 0.941209966459466, 1, 0.990076562967133, 0.998245793110004, 1, 0.978945701373555, 1, 1, 0.970701080714011, 1, 1, 0.953513721816977, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.876374152522318, 1, 1, 1, 1, 0.953074289377523, 1, 1, 1, 1, 1, 0.920849402466095, 1, 0.99264704534027, 1, 1, 1, 1, 1, 0.968185498209344, 1, 1, 1, 1, 1, 0.980471987744833, 0.967443195281189, 1, 1, 1, 1, 1, 0.930494281894962, 1, 1, 1, 1, 0.979897924639532, 0.988620857069118, 0.987687970323238, 0.994441333561322, 1, 0.93100935089304, 1, 1, 0.939420908064037, 0.998696569398849, 1, 0.97951572023157, 1, 0.997142308216209, 1, 1, 1, 0.957998642398146, 0.98509412877248, 1, 1, 1, 0.896126811880461, 0.986984752317855, 1, 1, 1, 1, 0.98014460795167, 1, 1, 1, 0.896153313719491, 1, 0.923413878957959, 0.854109703937277, 1, 0.937765748703719, 1, 1, 0.955467091441193, 1, 0.96659854507641, 1, 1, 1, 1, 1, 1, 0.991119566802369, 1, 1, 1, 1, 0.898531922890062, 1, 1, 1, 1, 1, 0.983459162381014, 1, 1, 0.982432495099588, 1, 0.964115338273121, 0.97206029132887, 1, 1, 0.968679829242745, 1, 0.93951167979817, 0.92335832416013, 0.928721037416729, 1, 1, 1, 1, 0.99346708194209, 1, 0.943535835656717, 0.94007618148581, 1, 0.970343354819372, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.986149108743654, 0.986958643237999, 1, 1, 1, 1, 1, 1, 1, 1, 0.952498200341754, 0.988530914014041, 1, 1, 1, 0.955194578024458, 1, 0.989300818884289, 0.966130661949901, 1, 0.966928717031311, 0.99346708194209, 1, 0.963776835169683, 0.946339370841035, 0.998083746289083, 1, 1, 1, 0.939983311825304, 1, 1, 1, 0.959914496257683, 1, 0.940285807080799, 1, 1, 0.93978165831114, 0.970728552883231, 1, 1, 1, 0.933989023658389, 0.945381820350393, 0.923270784327081, 1, 0.934105332748745, 1, 1, 0.982547471616407, 0.847170554897787, 1, 0.94573750978056, 1, 0.98204776088462, 1, 0.997763206231034, 0.807386342857999, 1, 0.857385794748486, 1, 1, 1, 0.98204776088462, 0.986841405531365, 1, 1, 1, 1, 0.986301351004674, 1, 0.964023897187932, 1, 0.938529164108954, 1, 1, 1, 1, 0.893291834795942, 1, 1, 1, 1, 1, 0.923146152952539, 0.972582962023575, 1, 1, 0.986752802686925, 0.927474880874839, 1, 0.864475377055235, 0.93100935089304, 0.985952732762231, 1, 0.89497548981621, 1, 1, 0.919478790326769, 0.990028106601432, 0.91933686153811, 1, 0.939411961286571, 1, 1, 0.946367855611587, 0.946126357657951, 0.953846573582948, 0.91675472658365, 0.850818212462798, 0.931823163359606, 1, 0.983069831126099, 0.983957967575225, 0.843999609094827, 1, 1, 0.98204776088462, 0.844856901019799, 1, 0.99188819767118, 0.938245949347245, 1, 1, 0.9554776936856, 1, 1, 1, 1, 0.912920477192394, 0.944562201305546, 0.987984544980855, 0.900492332231899, 0.951604821173758, 1, 1, 1, 1, 1, 0.929911580562157, 0.95685196102246, 0.988286271791929, 0.997142308216209, 1, 1, 1, 1, 1, 1, 0.965298874430441, 0.991186917689071, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.943267848289, 0.98204776088462, 1, 1, 1, 0.988286271791929, 1, 1, 1, 0.961255584547257, 0.983562970985142, 1, 1, 1, 1, 1, 0.965298874430441, 1, 1, 1, 1, 1, 1, 0.996264478819499, 1, 0.986958643237999, 0.978748079802256, 1, 0.998635440114505, 1, 1, 1, 1, 0.997416059655127, 0.979564690552889, 1, 1, 1, 1, 0.983875377178797, 0.930594962565513, 0.95459929299878, 0.971080849310376, 1, 0.988286271791929, 1, 1, 0.846170473522277, 1, 1, 0.971890058124678, 0.969478601674612, 1, 0.983261639112289, 0.952498200341754, 0.989289446375527, 1, 1, 1, 0.939633322360194, 1, 0.957959874384621, 1, 1, 1, 1, 1, 0.984524863257531, 0.989906831544423, 1, 1, 0.98999100177396, 0.965298874430441, 1, 0.94723684624135, 1, 0.951604821173758, 1, 1, 1, 0.957053986486345, 0.995380901277139, 0.975256889624768, 0.970509338629489, 1, 0.97358081791199, 1, 1, 1, 1, 1, 0.965298874430441, 0.99346708194209, 0.919203652539255, 0.985759360035672, 0.950439800143307, 0.993111643576231, 0.99191828360219, 1, 0.868233432874112, 1, 1, 1, 1, 0.963352467805545, 1, 1, 0.962157748868942, 0.940215681338146, 1, 0.993828302407991, 0.982620227735466, 1, 1, 1, 1, 0.97308261975501, 0.998217805296784, 0.960417282603557, 0.966326783346396, 0.972090463266952, 0.942596134664522, 0.976884597719881, 1, 0.96146996369012, 1, 0.968607064681371, 0.996013879232518, 1, 1, 1, 1, 1, 0.98604895578194, 0.886458022361784, 1, 0.988286271791929, 1, 0.987753073835903, 0.992150564299515, 1, 1, 1, 1, 1, 1, 0.812667446503371, 0.933070708232144, 1, 1, 0.949004436439421, 1, 0.941646948543794, 1, 0.953956831754347, 0.993828302407991, 0.997741884925089, 1, 0.941646948543794, 0.997697234475475, 0.984433279319848, 0.966618028852912, 1, 1, 1, 0.994762745089391, 1, 0.986958643237999, 0.99946651678917, 1, 1, 1, 0.896126811880461, 1, 0.988044798722156, 0.994335715734134, 0.929629756588501, 0.979843740968473, 1, 0.971655355258893, 1, 1, 1, 0.993464569346251, 0.987501791770423, 0.968003257992448, 0.99611186222421, 0.830517461839042, 0.952498200341754, 1, 1, 0.988792297026987, 1, 1, 0.990344597111936, 1, 1, 1, 1, 0.990076562967133, 0.970509338629489, 0.998674407518751, 1, 0.961064355347345, 1, 1, 0.965298874430441, 1, 0.933427101080754, 1, 1, 0.98731903764489, 1, 1, 1, 0.99587636583925, 1, 1, 0.95808869292781, 1, 1, 0.977614003817106, 1, 1, 1, 1, 1, 1, 0.928777292592925, 1, 1, 1, 0.961389779539419, 0.984435382634528, 0.998281872691283, 1, 0.969478601674612, 1, 1, 1, 1, 1, 1, 0.965298874430441, 1, 0.976335570199817, 1, 1, 0.99039550598454, 1, 0.886236812463158, 1, 1, 1, 1, 0.857369126949171, 1, 1, 1, 1, 0.965523509749952, 1, 0.980264911989058, 1, 1, 0.90792320125539, 1, 1, 1, 1, 1, 1, 0.965298874430441, 0.988978763868753, 1, 0.954111425993066, 1, 1, 1, 0.983560978962337, 0.99186939171656, 0.997416059655127, 1, 0.959617938721838, 0.909850984890526, 0.957897102017036, 1, 0.851766826920652, 1, 1, 0.965298874430441, 1, 1, 0.998998551516746, 0.993995455348349, 0.989174293764323, 0.919973818793555, 1, 0.906566162873233, 1, 1, 1, 1, 1, 1, 1, 0.975828189672704, 0.940187455424166, 1, 0.951221697111913, 1, 0.995300573326655, 0.99341406460049, 1, 1, 0.940187455424166, 1, 0.993398981946814, 1, 1, 0.96322282183259, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.959756521435583, 1, 0.99346708194209, 1, 0.863937805228037, 1, 0.96842354277453, 1, 1, 1, 1, 1, 0.997416059655127, 1, 1, 1, 1, 1, 1, 0.960568373325059, 0.919607410844497, 1, 1, 1, 1, 1, 1, 1, 1, 0.98229152989157, 0.970817593318758, 1, 1, 1, 1, 1, 0.989260344109928, 0.99541124521139, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.982195221991677, 1, 0.954900378818184, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.981091764742125, 1, 0.968554487241949, 1, 0.96926158755819, 1, 1, 1, 1, 0.970376655968348, 1, 1, 0.956653101174794, 1, 1, 0.978829202466339, 1, 1, 0.978531448472892, 1, 1, 1, 0.989837280870498, 1, 0.992377446462086, 0.974445988455069, 1, 1, 1, 1, 0.93443953275981, 0.954859802129611, 0.958146964566066, 1, 1, 1, 1, 1, 1, 0.854267070327657, 0.985862948106913, 1, 1, 0.99332802417647, 1, 1, 0.96377409894567, 1, 1, 1, 0.999642926856576, 0.934315199695543, 1, 0.941949065174709, 1, 1, 1, 0.976767679320755, 0.997033711813742, 1, 0.966075782741424, 1, 1, 1, 0.973544963959327, 0.97811581203966, 0.940663350223831, 0.99491753889799, 0.96246430628483, 1, 0.998212292841391, 1, 0.890822256392005, 0.946548762523197, 1, 1, 0.99491753889799, 0.887910257434449, 1, 1, 1, 1, 1, 1, 0.904034657730067, 0.935183815389542, 1, 1, 0.920142040518658, 0.993526071316197, 0.993526071316197, 1, 1, 1, 0.88986839036352, 0.996309457217239, 1, 0.932758747283897, 1, 0.892918094176395, 1, 0.992376520973674, 0.988650707915146, 1, 1, 0.998048446575417, 0.867916975539172, 0.955490437905137, 0.968919630933354, 0.930534011925839, 1, 0.975078675502195, 0.940663350223831, 0.993624740278089, 1, 1, 1, 0.968801022434725, 1, 1, 0.975810562845176, 0.974384021697464, 1, 1, 1, 1, 1, 0.981139637944697, 1, 1, 0.916024540946009, 1, 1, 1, 1, 0.993832246445194, 1, 0.994369763352333, 1, 0.990107853563784, 1, 1, 1, 0.989671764725506, 1, 0.986863303381818, 0.875057749543968, 0.98449901523107, 0.98449901523107, 0.924366779220102, 0.988606590890998, 0.911726490126796, 1, 0.911726490126796, 0.972087765965574, 0.972087765965574, 0.911726490126796, 1, 1, 1, 1, 1, 0.8510116092288, 1, 1, 0.76580062005226, 0.943341011591898, 0.899286205213833, 1, 0.948119818763234, 1, 1, 0.974306275904791, 0.935096635461939, 0.977011005003634, 1, 0.983753566045241, 2.30258509299405, 2.83321334405622, 0, 2.89037175789616, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 2.77258872223978, 2.89037175789616, 0, 2.56494935746154, 0, 2.70805020110221, 2.94443897916644, 2.70805020110221, 3.09104245335832, 2.89037175789616, 2.56494935746154, 0, 0, 2.77258872223978, 0, 1.09861228866811, 0, 0, 3.04452243772342, 2.83321334405622, 2.83321334405622, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.94443897916644, 2.83321334405622, 0, 2.89037175789616, 2.83321334405622, 0, 0, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 2.70805020110221, 2.56494935746154, 0, 1.94591014905531, 0, 2.89037175789616, 0, 2.83321334405622, 0, 0, 0, 2.89037175789616, 2.77258872223978, 0, 1.38629436111989, 0, 0, 0, 0, 2.83321334405622, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.484906649788, 0, 2.83321334405622, 0, 2.77258872223978, 0, 0, 2.70805020110221, 2.484906649788, 1.94591014905531, 0, 0, 2.94443897916644, 2.56494935746154, 0, 2.83321334405622, 1.6094379124341, 0, 1.94591014905531, 2.77258872223978, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 0, 2.63905732961526, 0, 2.07944154167984, 0, 2.99573227355399, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 0, 2.94443897916644, 0, 3.04452243772342, 1.6094379124341, 0, 2.99573227355399, 0, 0, 2.94443897916644, 0, 0, 2.39789527279837, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 0, 2.94443897916644, 0, 2.77258872223978, 1.09861228866811, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 0, 1.94591014905531, 1.94591014905531, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 2.07944154167984, 2.70805020110221, 2.83321334405622, 2.77258872223978, 0, 3.04452243772342, 0, 0, 2.83321334405622, 1.6094379124341, 0, 2.94443897916644, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 3.04452243772342, 2.89037175789616, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.89037175789616, 0, 2.70805020110221, 1.79175946922805, 0, 2.99573227355399, 0, 0, 3.04452243772342, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 2.30258509299405, 0.693147180559945, 0, 0, 0, 0, 2.99573227355399, 0, 0, 3.04452243772342, 0, 2.77258872223978, 1.79175946922805, 0, 0, 2.94443897916644, 0, 2.94443897916644, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.99573227355399, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 2.89037175789616, 0, 2.99573227355399, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.94591014905531, 0, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 2.70805020110221, 0, 2.30258509299405, 0, 0, 2.70805020110221, 2.70805020110221, 0, 0, 0, 2.07944154167984, 2.77258872223978, 2.56494935746154, 0, 2.77258872223978, 0, 0, 2.94443897916644, 2.70805020110221, 0, 2.484906649788, 0, 2.99573227355399, 0, 2.83321334405622, 2.39789527279837, 0, 2.70805020110221, 0, 0, 0, 2.99573227355399, 2.30258509299405, 0, 0, 0, 0, 2.94443897916644, 0, 1.6094379124341, 0, 2.89037175789616, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.89037175789616, 0, 0, 2.19722457733622, 1.38629436111989, 0, 2.77258872223978, 3.04452243772342, 2.07944154167984, 0, 2.19722457733622, 0, 0, 2.77258872223978, 3.04452243772342, 3.04452243772342, 0, 2.89037175789616, 0, 0, 2.63905732961526, 2.77258872223978, 2.77258872223978, 2.77258872223978, 2.94443897916644, 2.19722457733622, 0, 2.70805020110221, 2.99573227355399, 2.70805020110221, 0, 0, 2.99573227355399, 2.19722457733622, 0, 1.94591014905531, 2.94443897916644, 0, 0, 2.99573227355399, 0, 0, 0, 0, 2.83321334405622, 1.94591014905531, 2.07944154167984, 2.30258509299405, 2.77258872223978, 0, 1.79175946922805, 0, 0, 0, 1.94591014905531, 3.17805383034795, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.99573227355399, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.83321334405622, 3.04452243772342, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 2.89037175789616, 0, 0, 1.79175946922805, 0, 2.94443897916644, 2.83321334405622, 2.63905732961526, 3.04452243772342, 0, 1.6094379124341, 0, 0, 3.04452243772342, 0, 0, 2.94443897916644, 2.77258872223978, 0, 3.04452243772342, 2.94443897916644, 2.19722457733622, 0, 0, 0, 2.99573227355399, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.30258509299405, 2.70805020110221, 0, 0, 2.56494935746154, 2.77258872223978, 0, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 2.94443897916644, 2.89037175789616, 2.77258872223978, 2.70805020110221, 0, 1.94591014905531, 0, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.56494935746154, 2.89037175789616, 2.07944154167984, 2.19722457733622, 0, 3.04452243772342, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.89037175789616, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0, 0, 1.6094379124341, 2.56494935746154, 2.99573227355399, 2.89037175789616, 2.70805020110221, 2.83321334405622, 2.77258872223978, 0, 2.30258509299405, 0, 2.99573227355399, 1.6094379124341, 0, 0, 0, 0, 0, 1.6094379124341, 2.39789527279837, 0, 1.6094379124341, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.89037175789616, 0, 2.99573227355399, 0, 2.94443897916644, 0.693147180559945, 1.09861228866811, 0, 2.99573227355399, 1.09861228866811, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.79175946922805, 0, 0, 0, 3.04452243772342, 0, 2.89037175789616, 2.07944154167984, 3.09104245335832, 3.04452243772342, 0, 2.94443897916644, 0, 0, 0, 2.94443897916644, 3.09104245335832, 2.94443897916644, 2.484906649788, 1.38629436111989, 2.94443897916644, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 3.04452243772342, 2.70805020110221, 1.79175946922805, 0, 2.99573227355399, 0.693147180559945, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.56494935746154, 0, 0, 0, 2.30258509299405, 0, 0.693147180559945, 2.99573227355399, 0, 0, 2.89037175789616, 0, 0, 0.693147180559945, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.77258872223978, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 2.77258872223978, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.77258872223978, 0, 2.63905732961526, 0, 0, 2.63905732961526, 0, 0, 0, 0, 0, 2.56494935746154, 2.77258872223978, 2.70805020110221, 0, 2.89037175789616, 0, 0, 0, 2.56494935746154, 1.6094379124341, 1.09861228866811, 0, 2.30258509299405, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 2.89037175789616, 2.83321334405622, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.83321334405622, 0, 2.63905732961526, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.39789527279837, 0, 2.83321334405622, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 1.94591014905531, 0, 0, 0, 0, 0, 2.07944154167984, 2.99573227355399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.94443897916644, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 3.04452243772342, 0, 3.04452243772342, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.89037175789616, 0.693147180559945, 0, 2.70805020110221, 0, 0, 3.13549421592915, 0, 0, 0, 3.04452243772342, 0, 2.63905732961526, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 1.09861228866811, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.77258872223978, 0, 0, 1.94591014905531, 0, 0.693147180559945, 3.17805383034795, 0, 0, 0, 2.63905732961526, 3.04452243772342, 0, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.39789527279837, 0, 2.77258872223978, 0, 0, 0, 3.04452243772342, 1.09861228866811, 2.83321334405622, 2.83321334405622, 2.70805020110221, 0, 2.19722457733622, 0, 2.77258872223978, 1.94591014905531, 0, 0, 2.83321334405622, 2.07944154167984, 0, 0, 0, 0, 0, 0, 3.04452243772342, 2.19722457733622, 0, 0, 3.04452243772342, 2.83321334405622, 2.83321334405622, 0, 0, 0, 2.63905732961526, 2.77258872223978, 0, 2.83321334405622, 0, 2.83321334405622, 0, 2.89037175789616, 2.39789527279837, 0, 0, 1.09861228866811, 2.94443897916644, 2.30258509299405, 2.99573227355399, 2.89037175789616, 0, 2.83321334405622, 2.83321334405622, 2.94443897916644, 0, 0, 0, 2.70805020110221, 0, 0, 2.77258872223978, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 3.09104245335832, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.83321334405622, 0, 2.89037175789616, 0, 2.94443897916644, 0, 0, 0, 2.63905732961526, 0, 2.94443897916644, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.77258872223978, 2.99573227355399, 2.89037175789616, 1.38629436111989, 2.89037175789616, 3.04452243772342, 3.04452243772342, 2.89037175789616, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 1.94591014905531, 2.77258872223978, 2.77258872223978, 0, 2.77258872223978, 0, 0, 2.94443897916644, 2.77258872223978, 2.89037175789616, 0, 2.77258872223978, 0.693147180559945, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 1.38629436111989, 0, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 1.38629436111989, 1.09861228866811, 1.38629436111989, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 1.6094379124341, 0, 0, 1.94591014905531, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.94591014905531, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 1.79175946922805, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0.693147180559945, 0, 0, 0, 1.94591014905531, 1.38629436111989, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 1.6094379124341, 1.38629436111989, 1.79175946922805, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.38629436111989, 1.6094379124341, 0.693147180559945, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 1.94591014905531, 0, 0, 0, 0, 1.38629436111989, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 1.94591014905531, 1.09861228866811, 0, 1.6094379124341, 0, 0, 1.6094379124341, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 1.09861228866811, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 1.09861228866811, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 1.6094379124341, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.94591014905531, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.6094379124341, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 1.94591014905531, 0, 1.6094379124341, 0, 0, 0, 1.38629436111989, 0, 0.693147180559945, 2.07944154167984, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 2.07944154167984, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.38629436111989, 1.09861228866811, 1.09861228866811, 0, 0, 0, 2.07944154167984, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 1.38629436111989, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 1.38629436111989, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 2.07944154167984, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.79175946922805, 0, 1.38629436111989, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 1.09861228866811, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 1.38629436111989, 2.19722457733622, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.39789527279837, 0, 2.484906649788, 2.83321334405622, 2.484906649788, 2.94443897916644, 2.70805020110221, 2.56494935746154, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 2.70805020110221, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.70805020110221, 2.77258872223978, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.484906649788, 2.39789527279837, 0, 1.94591014905531, 0, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.39789527279837, 0, 2.83321334405622, 0, 2.56494935746154, 0, 0, 2.484906649788, 2.19722457733622, 1.94591014905531, 0, 0, 2.77258872223978, 2.30258509299405, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.63905732961526, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 0, 2.63905732961526, 0, 2.77258872223978, 1.6094379124341, 0, 2.39789527279837, 0, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.79175946922805, 1.79175946922805, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 0, 2.484906649788, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 2.56494935746154, 1.79175946922805, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 2.70805020110221, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.63905732961526, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 2.89037175789616, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.19722457733622, 2.56494935746154, 0, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.19722457733622, 0, 2.39789527279837, 0, 2.89037175789616, 0, 2.30258509299405, 2.07944154167984, 0, 2.30258509299405, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 2.70805020110221, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.07944154167984, 1.38629436111989, 0, 2.56494935746154, 2.89037175789616, 1.94591014905531, 0, 2.19722457733622, 0, 0, 2.484906649788, 2.63905732961526, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.63905732961526, 2.63905732961526, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 2.83321334405622, 2.63905732961526, 0, 0, 2.89037175789616, 2.07944154167984, 0, 1.94591014905531, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 2.94443897916644, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.89037175789616, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.19722457733622, 0, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.70805020110221, 2.77258872223978, 2.63905732961526, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.94443897916644, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.63905732961526, 2.83321334405622, 2.19722457733622, 0, 0, 0, 2.94443897916644, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 2.63905732961526, 0, 2.56494935746154, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.70805020110221, 1.09861228866811, 2.56494935746154, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 2.484906649788, 0, 0, 0, 0, 2.56494935746154, 0, 0, 2.30258509299405, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 2.07944154167984, 2.63905732961526, 2.70805020110221, 2.39789527279837, 2.484906649788, 2.70805020110221, 0, 1.79175946922805, 0, 2.89037175789616, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 2.30258509299405, 0, 1.6094379124341, 0, 2.83321334405622, 2.19722457733622, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 1.09861228866811, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 2.56494935746154, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.94443897916644, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 1.38629436111989, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.77258872223978, 0.693147180559945, 0, 2.70805020110221, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 0, 0, 2.07944154167984, 0, 2.484906649788, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 1.94591014905531, 2.70805020110221, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.484906649788, 1.6094379124341, 1.09861228866811, 0, 2.19722457733622, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.70805020110221, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.19722457733622, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 2.94443897916644, 0, 0, 0, 2.39789527279837, 0, 2.56494935746154, 2.484906649788, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.56494935746154, 2.484906649788, 0, 0, 1.94591014905531, 0, 0.693147180559945, 2.70805020110221, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 2.63905732961526, 1.6094379124341, 0, 2.30258509299405, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.07944154167984, 2.63905732961526, 0, 2.07944154167984, 0, 2.484906649788, 1.79175946922805, 0, 0, 2.07944154167984, 1.94591014905531, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.19722457733622, 0, 0, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 0, 0, 1.94591014905531, 2.56494935746154, 0, 2.70805020110221, 0, 2.77258872223978, 0, 1.94591014905531, 2.19722457733622, 0, 0, 1.09861228866811, 2.56494935746154, 2.07944154167984, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 2.77258872223978, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 0, 2.39789527279837, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 2.77258872223978, 2.77258872223978, 2.30258509299405, 2.99573227355399, 2.70805020110221, 1.09861228866811, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 0, 2.56494935746154, 0, 0, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.56494935746154, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0.000335630401156281, 0.951705158136462, 4.54226354033032e-05, 4.54226354033032e-05, 0.000158461325115751, 6.82901703136567e-08, 0.951705158136462, 0.000553084370147834, 0.367879441171442, 4.54226354033032e-05, 9.85447301171309e-05, 2.75639995719122e-05, 0.00865169520312063, 8.48182352464692e-05, 6.82901703136567e-08, 6.52414922649936e-06, 3.728516964574e-06, 1.85631929025986e-07, 0.0111089965382423, 3.06208375824484e-07, 3.7751345442791e-11, 0.0192547017753869, 7.54153290924762e-05, 0.000335630401156281, 4.54226354033032e-05, 0.00318278079650967, 5.05610109124981e-07, 1.13999185304436e-12, 2.75502210170519e-05, 9.61116520613947e-05, 2.37621897384794e-06, 6.14421235332821e-06, 0.0142713678092802, 1.37164473732573e-06, 0.000335462627902512, 0.951705158136462, 0.951705158136462, 5.82946637308688e-05, 2.90377193170525e-06, 0.00318278079650967, 0.000336302333667127, 0.0235177458560091, 0.00150343919297757, 0.0024849568096677, 0.0820849986238988, 1.37507813913307e-06, 0.951705158136462, 1.1338236150893e-07, 6.82901703136567e-08, 3.73598146051093e-06, 0.00150343919297757, 2.38236966750182e-07, 0.999500124979169, 1.69189792261513e-10, 6.04012957765189e-05, 2.29087999933294e-11, 0.00708340892905212, 0.00117381048189304, 4.54226354033032e-05, 1.76122670539221e-06, 2.63974083545825e-08, 3.92786354548104e-07, 4.7727633936802e-05, 0.000554468810903085, 5.04347662567888e-07, 0.00708340892905212, 1.12535174719259e-07, 2.9023204086504e-06, 3.72665317207867e-06, 1.14056199149361e-12, 2.14454083165892e-05, 8.76424821944364e-08, 3.72665317207867e-06, 3.728516964574e-06, 3.0605530990624e-07, 0.60683400087146, 3.72665317207867e-06, 0.0842050822745664, 1.30072976540676e-05, 1.06823799552505e-06, 0.951705158136462, 9.61116520613947e-05, 3.72665317207867e-06, 2.14454083165892e-05, 0.0550232200564072, 8.48182352464692e-05, 1.06494746038243e-05, 0.0111368037741499, 0.951705158136462, 0.135335283236613, 6.47919096155908e-07, 0.223241753124423, 0.0821260513855459, 0.000912794303613072, 3.92982796831856e-07, 0.0820849986238988, 1.37095908638408e-06, 0.0183156388887342, 0.999500124979169, 2.06218445693692e-09, 8.48182352464692e-05, 0.0820849986238988, 0.951705158136462, 0.038774207831722, 0.0111145524253675, 9.63522317909083e-05, 1.30072976540676e-05, 4.53999297624849e-05, 0.00673794699908547, 0.472366552741015, 0.00674131681496878, 0.0001588579740331, 0.0820849986238988, 0.00673794699908547, 4.53999297624849e-05, 0.951705158136462, 0.0111145524253675, 0.0821260513855459, 0.00673794699908547, 0.018324798998015, 1.85631929025986e-07, 4.53999297624849e-05, 0.0820849986238988, 0.000261258557301668, 0.28650479686019, 3.21586267857925e-07, 0.00708340892905212, 7.86895652717947e-05, 0.0235177458560091, 3.7751345442791e-11, 0.951705158136462, 0.0820849986238988, 0.951229424500714, 0.000553084370147834, 0.122456428252982, 2.06218445693692e-09, 5.90530399894404e-10, 4.35219686455574e-08, 1.12816864621722e-07, 0.00708340892905212, 0.951705158136462, 0.0639278612067076, 0.00674131681496878, 0.000158461325115751, 0.000911881965554516, 3.05902320501826e-07, 2.06115362243856e-09, 0.00319234347574604, 0.105399224561864, 0.0116785669703954, 1.01453001410843e-05, 1.38948895731788e-11, 0.000553084370147834, 5.31844381163554e-08, 3.72665317207867e-06, 0.0820849986238988, 1.30072976540676e-05, 0.00673794699908547, 0.223241753124423, 2.38236966750182e-07, 0.0202419114458044, 0.00673794699908547, 2.1668312284604e-09, 0.999500124979169, 0.00673794699908547, 0.128734903587804, 2.79086317565699e-10, 0.0235295076691454, 0.0820849986238988, 0.951705158136462, 0.778800783071405, 0.0820849986238988, 0.00708340892905212, 0.0550232200564072, 0.0820849986238988, 0.951705158136462, 3.72665317207867e-06, 0.28650479686019, 2.38236966750182e-07, 0.00674131681496878, 1.3887943864964e-11, 0.60683400087146, 3.22418673725673e-08, 0.368800290356243, 0.778800783071405, 0.00202943063629573, 0.951705158136462, 0.00763509421885996, 0.00673794699908547, 0.367879441171442, 0.00682269993889683, 3.72665317207867e-06, 2.06115362243856e-09, 0.0907179532894125, 3.92786354548104e-07, 0.00150343919297757, 1.85539136261598e-07, 0.0183156388887342, 0.000553084370147834, 0.00674131681496878, 0.0235177458560091, 0.000911881965554516, 0.0820849986238988, 0.0247235264703394, 0.00673794699908547, 0.00193045413622771, 1.06770401003478e-06, 0.0235177458560091, 7.48892651606827e-05, 0.951229424500714, 4.54226354033032e-05, 0.00708340892905212, 0.951705158136462, 0.00247875217666636, 9.3785527959639e-05, 0.000553084370147834, 0.00012365687067909, 5.55951324165015e-06, 0.60683400087146, 0.0820849986238988, 1.76475268360589e-06, 0.0235177458560091, 0.472366552741015, 8.69654190944029e-05, 0.472366552741015, 0.0287246396542394, 4.53999297624849e-05, 0.0111089965382423, 0.951705158136462, 0.951705158136462, 3.21586267857925e-07, 0.22313016014843, 0.951705158136462, 0.951705158136462, 0.0235177458560091, 0.0301973834223185, 0.00674131681496878, 0.000553084370147834, 0.0111089965382423, 0.192049908620754, 0.00318278079650967, 0.62188505646502, 0.951705158136462, 2.51099915574398e-08, 4.78511739212901e-06, 1.13411309337498e-10, 1.76034631215617e-06, 0.0116785669703954, 0.951705158136462, 3.728516964574e-06, 3.72665317207867e-06, 1.3887943864964e-11, 0.00673794699908547, 0.951229424500714, 3.21586267857925e-07, 4.13993771878517e-08, 0.60683400087146, 0.0820849986238988, 0.999500124979169, 0.905289949868508, 8.76424821944364e-08, 0.00193045413622771, 0.000553084370147834, 0.00193045413622771, 2.06115362243856e-09, 0.135335283236613, 7.87289198922657e-05, 3.7303816891986e-06, 0.368063426884623, 0.00408677143846407, 4.53999297624849e-05, 0.00193045413622771, 0.951229424500714, 0.00012347152441752, 0.00318278079650967, 0.0820849986238988, 0.135335283236613, 0.00193528630926782, 0.951705158136462, 0.00379147558214861, 1.44498024610924e-07, 0.000553084370147834, 0.00273944481876837, 0.00708340892905212, 0.000553084370147834, 2.06218445693692e-09, 0.0498119681264688, 0.00980855808900089, 0.00708340892905212, 0.000553360981479978, 0.000203570128632935, 0.00247875217666636, 3.05902320501826e-07, 3.05902320501826e-07, 0.000581441612193756, 0.00408677143846407, 0.00708340892905212, 1.3020311457539e-05, 0.0116785669703954, 0.000553360981479978, 0.00674131681496878, 2.06115362243856e-09, 0.999500124979169, 0.999500124979169, 4.84736870627026e-11, 0.00708340892905212, 2.64789725660542e-09, 0.000158461325115751, 0.0820849986238988, 3.05902320501826e-07, 2.06218445693692e-09, 0.608048883350721, 0.0523397059484324, 0.0820849986238988, 8.29381916075737e-06, 2.51225496924906e-08, 0.0273237224472926, 2.06218445693692e-09, 1.45999939733294e-11, 0.105399224561864, 0.000553084370147834, 0.951705158136462, 9.61116520613947e-05, 4.11001001387137e-05, 5.04599899453138e-07, 1.67100537287014e-05, 8.74162108200159e-07, 0.000553084370147834, 0.951705158136462, 5.01746820561753e-05, 3.05902320501826e-07, 3.05902320501826e-07, 0.00673794699908547, 0.0497870683678639, 0.0111089965382423, 0.00012340980408668, 0.22313016014843, 6.32089927196706e-16, 0.951705158136462, 1.13999185304436e-12, 0.951705158136462, 2.75364493497472e-05, 0.000129737160045754, 0.0183156388887342, 0.000430742540575688, 0.000553084370147834, 2.89482732982116e-05, 4.53999297624849e-05, 0.000553084370147834, 0.951705158136462, 2.64657363890912e-09, 0.00193045413622771, 6.91785817143775e-13, 0.0497870683678639, 0.000158461325115751, 0.00012340980408668, 0.00247875217666636, 0.000336302333667127, 0.0822904678499759, 0.951705158136462, 0.000352662164628256, 0.0820849986238988, 6.9144001069402e-13, 1.14570608598729e-12, 0.000553360981479978, 0.018324798998015, 8.99376602902882e-18, 1.67017007902457e-05, 2.51728450704886e-08, 0.951705158136462, 0.00673794699908547, 0.0639278612067076, 3.72665317207867e-06, 0.00012340980408668, 0.0111145524253675, 6.22725747336699e-11, 0.0820849986238988, 2.06115362243856e-09, 8.31528719103568e-07, 0.0192547017753869, 3.86038082117729e-09, 6.14728522765943e-06, 0.000911881965554516, 0.000912338020541539, 0.00674131681496878, 0.951705158136462, 0.0821260513855459, 0.000581441612193756, 0.000158461325115751, 0.000553084370147834, 0.0820849986238988, 0.951229424500714, 0.60683400087146, 0.000553084370147834, 0.951705158136462, 1.67100537287014e-05, 0.0183156388887342, 5.5739036926946e-07, 0.000336302333667127, 1.18304976507983e-07, 0.00674131681496878, 0.060810062625218, 4.13993771878517e-08, 0.00150419110053529, 0.951705158136462, 0.000553084370147834, 0.0183431329624674, 3.05902320501826e-07, 1.0788017451298e-10, 0.00674806150356599, 1.67017007902457e-05, 0.000203570128632935, 0.00673794699908547, 4.54680807575966e-05, 6.91785817143775e-13, 1.12535174719259e-07, 0.000166585810987634, 2.06115362243856e-09, 0.00865169520312063, 0.951705158136462, 1.76034631215617e-06, 0.951705158136462, 0.000553360981479978, 0.0235177458560091, 0.000553084370147834, 4.7727633936802e-05, 0.00150419110053529, 1.67031220484403e-06, 2.94007773928447e-11, 0.000193545099558094, 0.0223707718561656, 0.0820849986238988, 0.00158052216873622, 0.951229424500714, 2.51099915574398e-08, 0.0820849986238988, 3.73598146051093e-06, 4.35219686455574e-08, 4.53999297624849e-05, 0.000335462627902512, 4.54226354033032e-05, 2.51225496924906e-08, 0.0820849986238988, 5.13513538884332e-13, 0.0116785669703954, 2.1668312284604e-09, 8.72341297851823e-06, 0.038774207831722, 0.951705158136462, 0.999500124979169, 0.951705158136462, 0.000158461325115751, 0.951705158136462, 0.00150419110053529, 0.951705158136462, 3.72665317207867e-06, 0.000553084370147834, 0.0235177458560091, 3.73224734641864e-06, 0.000111665808490115, 3.05902320501826e-07, 0.00429630469075234, 0.149718262651102, 2.06115362243856e-09, 3.10036893570814e-12, 0.951705158136462, 0.00247999186265036, 7.68504624785534e-15, 3.21586267857925e-07, 0.000553084370147834, 2.37859638132741e-06, 0.000553084370147834, 2.51099915574398e-08, 0.951705158136462, 3.728516964574e-06, 4.53999297624849e-05, 0.0111089965382423, 0.951705158136462, 9.61116520613947e-05, 1.3887943864964e-11, 0.00474815099941148, 0.105399224561864, 8.31944587421534e-07, 9.66581709718793e-07, 0.00865169520312063, 5.60559853622232e-09, 0.000710174388842549, 0.951705158136462, 4.53999297624849e-05, 5.89005795366149e-09, 0.951705158136462, 0.00012340980408668, 5.87335173528082e-05, 1.52299797447126e-08, 8.71840251166509e-11, 0.951705158136462, 1.06770401003478e-06, 3.73224734641864e-06, 0.0235177458560091, 1.3887943864964e-11, 4.6588861451034e-15, 1.52375966386498e-08, 3.97896253583724e-12, 0.951705158136462, 3.0605530990624e-07, 0.00012347152441752, 3.72665317207867e-06, 4.53999297624849e-05, 0.606530659712633, 3.77702258352171e-11, 6.45923285705046e-06, 6.84327102221799e-09, 0.951705158136462, 4.3634622529437e-09, 9.6908364580017e-08, 0.000303539138078867, 0.606530659712633, 1.06494746038243e-05, 1.02670118544665e-10, 0.00055363773115237, 0.00247875217666636, 0.28650479686019, 1.69274408309893e-10, 1.24370602360287e-07, 2.06115362243856e-09, 0.00408677143846407, 4.47463804640308e-05, 4.14200820522303e-08, 0.000553084370147834, 3.10036893570814e-12, 3.05902320501826e-07, 0.951705158136462, 1.45999939733294e-11, 0.0183156388887342, 6.44255670343554e-05, 0.00708340892905212, 0.951705158136462, 2.06218445693692e-09, 0.000158540575589276, 0.000335630401156281, 2.26145985427281e-06, 0.00012340980408668, 8.31944587421534e-07, 1.14056199149361e-12, 2.86251858054939e-20, 8.42346375446865e-12, 7.88932482720022e-06, 3.3999673782591e-09, 0.951705158136462, 3.05902320501826e-07, 0.00408677143846407, 0.000553084370147834, 5.61682095196972e-09, 0.00708340892905212, 0.951705158136462, 3.94822391865094e-09, 3.728516964574e-06, 0.000123718714574115, 1.54358280167703e-13, 0.000203570128632935, 0.0183156388887342, 0.000261258557301668, 0.000123718714574115, 4.60135548131939e-10, 1.02618796317019e-10, 0.000175126848157658, 2.30564736129533e-16, 1.3887943864964e-11, 4.53999297624849e-05, 1.01351599119028e-05, 0.000554468810903085, 0.286648085077689, 0.00674131681496878, 0.000500451433440611, 0.0111089965382423, 0.0136025228468352, 0.951705158136462, 4.35219686455574e-08, 3.42472479249159e-12, 0.951705158136462, 1.88423351700565e-12, 0.0100518357446336, 4.54226354033032e-05, 2.63974083545825e-08, 1.30072976540676e-05, 0.00012340980408668, 0.00673794699908547, 1.3887943864964e-11, 2.30657983610627e-09, 6.45923285705046e-06, 2.26145985427281e-06, 1.14056199149361e-12, 3.92982796831856e-07, 7.48892651606827e-05, 4.60135548131939e-10, 4.7727633936802e-05, 1.74008858514694e-11, 3.80383800357089e-06, 3.72665317207867e-06, 1.30072976540676e-05, 2.51099915574398e-08, 4.7727633936802e-05, 4.54226354033032e-05, 0.951705158136462, 3.05902320501826e-07, 1.85539136261598e-07, 2.14454083165892e-05, 0.951705158136462, 2.51937425193464e-06, 2.39051914530491e-06, 5.54515994321769e-05, 0.000158540575589276, 1.13999185304436e-12, 0.00673794699908547, 5.92008572840442e-10, 3.3999673782591e-09, 8.76424821944364e-08, 5.34601236116235e-10, 0.951705158136462, 5.01746820561753e-05, 0.000553084370147834, 2.06115362243856e-09, 2.51099915574398e-08, 1.69712564490116e-11, 1.3887943864964e-11, 4.35219686455574e-08, 3.05902320501826e-07, 0.00708340892905212, 5.05610109124981e-07, 1.14284539812209e-12, 2.37621897384794e-06, 0.000553914619234198, 7.70043172069537e-15, 4.20675388637505e-14, 1.30474883410578e-06, 0.000158461325115751, 5.60559853622232e-09, 9.35762296884017e-14, 1.88533629141692e-13, 6.82901703136567e-08, 3.72665317207867e-06, 3.0605530990624e-07, 4.13993771878517e-08, 3.57428743338516e-09, 3.0605530990624e-07, 0.00166155727317393, 0.000553360981479978, 5.04347662567888e-07, 7.36347283395392e-18, 1.3674196065681e-05, 3.22686332296889e-06, 0.951705158136462, 0.000335630401156281, 1.33134712014837e-14, 3.44419877740557e-14, 4.61056740113121e-10, 8.76424821944364e-08, 1.33890341235067e-10, 0.00532682448382038, 1.85539136261598e-07, 3.72665317207867e-06, 0.000553360981479978, 1.71819856305081e-15, 5.60559853622232e-09, 0.00524751839918138, 0.472366552741015, 2.79225895616086e-10, 0.00193528630926782, 3.26613134278745e-13, 1.38520886031376e-10, 1.69189792261513e-10, 0.951705158136462, 5.44091138530373e-17, 2.68234470489704e-14, 2.51225496924906e-08, 4.59905537865232e-10, 8.74162108200159e-07, 1.02242856555085e-08, 7.19413303032538e-09, 7.5769156379498e-13, 0.00033647052687876, 5.90530399894404e-10, 0.951705158136462, 3.72665317207867e-06, 0.00708340892905212, 0.00673794699908547, 2.924916218268e-09, 0.00673794699908547, 0.000335630401156281, 2.26145985427281e-06, 2.63974083545825e-08, 9.61597199033844e-05, 0.60683400087146, 0.000453053653091073, 4.36564452959387e-09, 2.54493779821181e-13, 4.77753854425123e-05, 0.000553084370147834, 2.26032940698105e-06, 2.82575728711561e-15, 5.60279643753727e-09, 1.61152469107488e-08, 4.07262173446808e-21, 8.31944587421534e-07, 3.26613134278745e-13, 1.50158484838944e-12, 6.56020016815378e-12, 2.51225496924906e-08, 0.951705158136462, 0.28650479686019, 2.47264135281109e-21, 3.05902320501826e-07, 2.51225496924906e-08, 3.0605530990624e-07, 0.0301973834223185, 8.31528719103568e-07, 0.000553360981479978, 4.6951575726312e-18, 1.01554505155667e-05, 2.37621897384794e-06, 2.1668312284604e-09, 4.40881615976168e-13, 4.3634622529437e-09, 4.7727633936802e-05, 0.951229424500714, 0.0183614852700543, 2.51099915574398e-08, 7.19413303032538e-09, 2.17243993507902e-10, 0.999500124979169, 0.105399224561864, 3.92786354548104e-07, 9.36230295022243e-14, 2.64657363890912e-09, 3.3999673782591e-09, 5.67852378482794e-14, 8.31803014157123e-05, 7.91370171109471e-07, 0.951705158136462, 0.00708340892905212, 2.14454083165892e-05, 4.53999297624849e-05, 0.000553084370147834, 5.90530399894404e-10, 3.05902320501826e-07, 3.26613134278745e-13, 1.20154257317718e-13, 1.468785726345e-11, 2.51099915574398e-08, 0.00193045413622771, 9.66581709718793e-07, 1.02875664258954e-10, 1.76034631215617e-06, 1.02670118544665e-10, 1.50483121732107e-08, 2.04625349553219e-06, 3.47851754052321e-13, 1.44498024610924e-07, 4.13993771878517e-08, 2.78946809286892e-10, 6.79380085872525e-06, 2.79086317565699e-10, 2.64657363890912e-09, 3.05902320501826e-07, 3.05902320501826e-07, 1.26704992151533e-14, 2.51099915574398e-08, 1.468785726345e-11, 8.52578968847199e-07, 2.02763896730411e-22, 1.38948895731788e-11, 0.00193045413622771, 1.06770401003478e-06, 4.14200820522303e-08, 0.951705158136462, 8.48904403387178e-15, 1.67017007902457e-05, 3.05902320501826e-07, 5.82946637308688e-05, 8.0959301752126e-16, 0.00708340892905212, 4.53999297624849e-05, 9.83739855792608e-14, 3.97896253583724e-12, 0.00012347152441752, 3.05902320501826e-07, 0.00673794699908547, 0.000553084370147834, 8.76424821944364e-08, 0.00673794699908547, 2.1668312284604e-09, 0.0743107242891859, 0.484566791790503, 0.105451937351244, 0.212354124349076, 0.819140220812924, 0.637947045414389, 0.00166571636305303, 0.0302124858893318, 0.00095863515369402, 2.51099915574398e-08, 0.608048883350721, 0.246596963941606, 0.028739005565245, 2.9023204086504e-06, 0.237520819095458, 5.17555500580187e-17, 0.951705158136462, 3.72665317207867e-06, 6.02357383788648e-08, 0.00673794699908547, 0.00673794699908547, 0.0235177458560091, 2.14454083165892e-05, 2.64657363890912e-09, 8.85534397644396e-12, 4.54226354033032e-05, 5.30206120182429e-07, 9.86286204658045e-15, 0.951705158136462, 9.36230295022243e-14, 1.4075653191894e-16, 5.44091138530373e-17, 1.4075653191894e-16, 1.30072976540676e-05, 9.36230295022243e-14, 2.51099915574398e-08, 3.05902320501826e-07, 1.12535174719259e-07, 5.62010827615891e-10, 2.26032940698105e-06, 7.13855630669085e-06, 0.000553084370147834, 0.0183156388887342, 0.00673794699908547, 0.000129737160045754, 0.0302124858893318, 1.44498024610924e-07, 0.00117087962079117, 0.000335462627902512, 7.88932482720022e-06, 3.92786354548104e-07, 8.31528719103568e-07, 6.82560337633487e-08, 7.97132661438841e-10, 0.000261258557301668, 7.6812046852021e-15, 2.91736480260516e-08, 0.000158461325115751, 1.40686171244615e-16, 8.76424821944364e-08, 5.178143430357e-17, 1.30072976540676e-05, 0.00166155727317393, 0.00524751839918138, 0.000158461325115751, 1.13999185304436e-12, 2.51728450704886e-08, 0.000710174388842549, 2.75364493497472e-05, 0.00673794699908547, 2.69306713765785e-08, 2.05052457561193e-07, 2.63974083545825e-08, 1.01300935986307e-05, 1.06770401003478e-06, 1.67017007902457e-05, 0.000581441612193756, 2.51099915574398e-08, 3.05902320501826e-07, 3.72665317207867e-06, 2.06115362243856e-09, 5.30206120182429e-07, 3.72665317207867e-06, 3.97896253583724e-12, 1.31765142700955e-10, 1.3887943864964e-11, 0.0301973834223185, 0.779190280829265, 2.26145985427281e-06, 0.00673794699908547, 4.53999297624849e-05, 5.60279643753727e-09, 0.0497870683678639, 3.7751345442791e-11, 0.000158461325115751, 0.0306690891407788, 0.472366552741015, 1.30072976540676e-05, 0.000553084370147834, 0.000581441612193756, 0.223688683411983, 0.472366552741015, 0.377192353563157, 0.0302729713263857, 0.0235177458560091, 0.0820849986238988, 0.00673794699908547, 3.0605530990624e-07, 0.28650479686019, 0.951705158136462, 0.0498119681264688, 2.89482732982116e-05, 0.472602795073046, 0.00247999186265036, 0.0111145524253675, 0.192530634048713, 0.00166155727317393, 0.135335283236613, 0.951705158136462, 2.89482732982116e-05, 0.951705158136462, 0.951229424500714, 4.53999297624849e-05, 0.28650479686019, 0.22313016014843, 0.778800783071405, 0.135335283236613, 0.0235295076691454, 0.223688683411983, 0.135335283236613, 0.0820849986238988, 7.48892651606827e-05, 0.951229424500714, 0.0301973834223185, 0.0821260513855459, 2.06218445693692e-09, 0.0820849986238988, 0.00673794699908547, 0.951705158136462, 0.951705158136462, 0.951705158136462, 0.000553084370147834, 0.472366552741015, 3.72665317207867e-06, 0.000728152539089461, 0.951705158136462, 0.28650479686019, 0.951705158136462, 0.951705158136462, 0.000553084370147834, 0.951705158136462, 0.367879441171442, 0.00673794699908547, 5.33039564348739e-05, 0.000529540981138434, 0.951705158136462, 0.951705158136462, 0.0706865474998335, 0.60683400087146, 0.0498119681264688, 0.606530659712633, 0.00675481294022526, 0.00166155727317393, 0.00674131681496878, 0.00674131681496878, 0.00673794699908547, 0.00150343919297757, 0.00674131681496878, 0.000409939897694686, 0.038774207831722, 0.0618526707495454, 0.0192547017753869, 0.000805135477238069, 0.0142642339089993, 0.00674131681496878, 0.951705158136462, 0.00675481294022526, 0.00673794699908547, 0.00673794699908547, 0.0105672043838527, 0.000430742540575688, 0.28650479686019, 0.000553084370147834, 9.73620031300957e-10, 8.76424821944364e-08, 0.60683400087146, 0.951705158136462, 0.368800290356243, 5.60559853622232e-09, 0.000554468810903085, 0.000554468810903085, 1.8600356439553e-07, 2.51225496924906e-08, 0.0235295076691454, 3.72665317207867e-06, 0.00193141960464281, 1.25077809911509e-09, 4.54226354033032e-05, 0.0821260513855459, 3.38074348390474e-07, 1.1259145637586e-07, 2.89482732982116e-05, 3.91772276602433e-06, 3.91772276602433e-06, 1.06494746038243e-05, 1.18304976507983e-07, 5.30206120182429e-07, 2.19502031567398e-14, 4.83485399020988e-10, 3.2576989934351e-12, 0.0111089965382423, 0.0129068125804799, 0.0820849986238988, 3.728516964574e-06, 2.06115362243856e-09, 3.72665317207867e-06, 0.000261389219243081, 0.000261389219243081, 0.00247999186265036, 1.67435072785575e-05, 8.74162108200159e-07, 1.18304976507983e-07, 0.0113902221245134, 6.1595921008857e-06, 6.82901703136567e-08, 2.06115362243856e-09, 0.00247999186265036, 5.07511131328062, -0.0100503358535015, 5.298267365298, 5.298267365298, 5.16478597392351, 5.79906235097108, -0.0100503358535015, 5.01063529409626, 2.99573227355399, 5.298267365298, 5.21764946348058, 5.34701228808679, 4.55387689160054, 5.23377884541047, 5.79906235097108, 5.47562638151845, 5.52142091706223, 5.73654003889437, 4.49980967033027, 5.70371580576721, 6.17378610390194, 4.36944785246702, 5.24623428667781, 5.07511131328062, 5.298267365298, 4.74493212836325, 5.66970849432245, 6.30991827822652, 5.34705991053603, 5.22035582507832, 5.55682806169954, 5.48063892334199, 4.44253360251053, 5.59838492127545, 5.07517381523383, -0.0100503358535015, -0.0100503358535015, 5.27299955856375, 5.5412243287032, 4.74493212836325, 5.07486126639553, 4.31748811353631, 4.86753445045558, 4.7870749892857, 3.91202300542815, 5.59819971208114, -0.0100503358535015, 5.76785213589615, 5.79906235097108, 5.52126089785958, 4.86753445045558, 5.72031177660741, -4.60517018598809, 6.10924758276437, 5.26935188825502, 6.19438498273316, 4.59511985013459, 4.90490433946401, 5.298267365298, 5.57969208942515, 5.85507192220243, 5.68697535633982, 5.29330482472449, 5.01030190519502, 5.66988092298052, 4.59511985013459, 5.76832099579377, 5.54126354515843, 5.52146091786225, 6.30990009624304, 5.37063802812766, 5.78382518232974, 5.52146091786225, 5.52142091706223, 5.7037491407673, 2.30158459266046, 5.52146091786225, 3.90177062896379, 5.41610040220442, 5.61673473336903, -0.0100503358535015, 5.22035582507832, 5.52146091786225, 5.37063802812766, 4.06044301054642, 5.23377884541047, 5.43372200355424, 4.49925396039654, -0.0100503358535015, 3.68887945411394, 5.65245409193376, 3.40086399276092, 3.91182298542548, 4.94149955526139, 5.68694145746017, 3.91202300542815, 5.59842195899838, 4.38202663467388, -4.60517018598809, 5.99143954679548, 5.23377884541047, 3.91202300542815, -0.0100503358535015, 4.17438726989564, 4.49969855304586, 5.22008551827846, 5.41610040220442, 5.29831736654804, 4.60517018598809, 2.70805020110221, 4.60507018098776, 5.1645002188137, 3.91202300542815, 4.60517018598809, 5.29831736654804, -0.0100503358535015, 4.49969855304586, 3.91182298542548, 4.60517018598809, 4.38190162686073, 5.73654003889437, 5.29831736654804, 3.91202300542815, 5.10594547390058, 3.2188758248682, 5.70044357339069, 4.59511985013459, 5.24174701505964, 4.31748811353631, 6.17378610390194, -0.0100503358535015, 3.91202300542815, 0, 5.01063529409626, 3.73766961828337, 5.99143954679548, 6.05208916892442, 5.82600010738045, 5.76816473358547, 4.59511985013459, -0.0100503358535015, 4.00733318523247, 4.60507018098776, 5.16478597392351, 4.9416424226093, 5.7037824746562, 5.99146454710798, 4.7444102530796, 3.80666248977032, 4.48863636973214, 5.43794886563323, 6.21458809822219, 5.01063529409626, 5.81410068063326, 5.52146091786225, 3.91202300542815, 5.41610040220442, 4.60517018598809, 3.40086399276092, 5.72031177660741, 4.35670882668959, 4.60517018598809, 5.98896141688986, -4.60517018598809, 4.60517018598809, 3.71357206670431, 6.08675199938131, 4.3173547713133, 3.91202300542815, -0.0100503358535015, 1.6094379124341, 3.91202300542815, 4.59511985013459, 4.06044301054642, 3.91202300542815, -0.0100503358535015, 5.52146091786225, 3.2188758248682, 5.72031177660741, 4.60507018098776, 6.21460809842219, 2.30158459266046, 5.84354441703136, 2.99322914333587, 1.6094379124341, 4.82028156560504, -0.0100503358535015, 4.5798523780038, 4.60517018598809, 2.99573227355399, 4.60266705576997, 5.52146091786225, 5.99146454710798, 3.87120101090789, 5.68697535633982, 4.86753445045558, 5.73657229747919, 4.38202663467388, 5.01063529409626, 4.60507018098776, 4.31748811353631, 4.9416424226093, 3.91202300542815, 4.30406509320417, 4.60517018598809, 4.8283137373023, 5.61677109766657, 4.31748811353631, 5.24697143919645, 0, 5.298267365298, 4.59511985013459, -0.0100503358535015, 4.78749174278205, 5.22300097223859, 5.01063529409626, 5.19273460397297, 5.48893772615669, 2.30158459266046, 3.91202300542815, 5.57954112893877, 4.31748811353631, 2.70805020110221, 5.23110861685459, 2.70805020110221, 4.26267987704132, 5.29831736654804, 4.49980967033027, -0.0100503358535015, -0.0100503358535015, 5.70044357339069, 3.40119738166216, -0.0100503358535015, -0.0100503358535015, 4.31748811353631, 4.24849524204936, 4.60507018098776, 5.01063529409626, 4.49980967033027, 3.49650756146648, 4.74493212836325, 2.2512917986065, -0.0100503358535015, 5.85793315448346, 5.50125821054473, 6.12686918411419, 5.57972982598622, 4.48863636973214, -0.0100503358535015, 5.52142091706223, 5.52146091786225, 6.21460809842219, 4.60517018598809, 0, 5.70044357339069, 5.82894561761021, 2.30158459266046, 3.91202300542815, -4.60517018598809, 0.688134638736401, 5.78382518232974, 4.8283137373023, 5.01063529409626, 4.8283137373023, 5.99146454710798, 3.68887945411394, 5.24169410360695, 5.52138091466208, 2.99523214851231, 4.70048036579242, 5.29831736654804, 4.8283137373023, 0, 5.19290129379139, 4.74493212836325, 3.91202300542815, 3.68887945411394, 4.82791365728096, -0.0100503358535015, 4.71402459090017, 5.75257263882563, 5.01063529409626, 4.77068462446567, 4.59511985013459, 5.01063529409626, 5.99143954679548, 4.094177881665, 4.52710053056617, 4.59511985013459, 5.01056862520727, 5.13573961179068, 4.78749174278205, 5.7037824746562, 5.7037824746562, 5.00394630594546, 4.70048036579242, 4.59511985013459, 5.41601150936468, 4.48863636973214, 5.01056862520727, 4.60507018098776, 5.99146454710798, -4.60517018598809, -4.60517018598809, 6.16331480403464, 4.59511985013459, 5.97886044812496, 5.16478597392351, 3.91202300542815, 5.7037824746562, 5.99143954679548, 2.2975725511705, 4.07753744390572, 3.91202300542815, 5.4553211153577, 5.85790458264672, 4.27666611901606, 5.99143954679548, 6.21260609575152, 3.80666248977032, 5.01063529409626, -0.0100503358535015, 5.22035582507832, 5.3082181912253, 5.66984643962735, 5.39358209077382, 5.63121178182137, 5.01063529409626, -0.0100503358535015, 5.28826703069454, 5.7037824746562, 5.7037824746562, 4.60517018598809, 4.0943445622221, 4.49980967033027, 5.19295685089021, 3.40119738166216, 6.55100890392083, -0.0100503358535015, 6.30991827822652, -0.0100503358535015, 5.34710753071747, 5.18738580584075, 4.38202663467388, 5.04342511691925, 5.01063529409626, 5.34233425196481, 5.29831736654804, 5.01063529409626, -0.0100503358535015, 5.97888576490112, 4.8283137373023, 6.3279189264269, 4.0943445622221, 5.16478597392351, 5.19295685089021, 4.78749174278205, 5.07486126639553, 3.91102250509456, -0.0100503358535015, 5.06890420222023, 3.91202300542815, 6.32793678372919, 6.30973644351377, 5.01056862520727, 4.38190162686073, 6.66568371778241, 5.39362754635236, 5.85779028713555, -0.0100503358535015, 4.60517018598809, 4.00733318523247, 5.52146091786225, 5.19295685089021, 4.49969855304586, 6.15271141788201, 3.91202300542815, 5.99146454710798, 5.63478960316925, 4.36944785246702, 5.95958680820996, 5.48059725580725, 4.9416424226093, 4.94157099148673, 4.60507018098776, -0.0100503358535015, 3.91182298542548, 5.00394630594546, 5.16478597392351, 5.01063529409626, 3.91202300542815, 0, 2.30158459266046, 5.01063529409626, -0.0100503358535015, 5.39358209077382, 4.38202663467388, 5.66296048013595, 5.07486126639553, 5.76519110278484, 4.60507018098776, 4.02535169073515, 5.82894561761021, 4.86745752441993, -0.0100503358535015, 5.01063529409626, 4.3816515643438, 5.7037824746562, 6.12905021006055, 4.60487014097909, 5.39362754635236, 5.13573961179068, 4.60517018598809, 5.29816735529691, 6.3279189264269, 5.76832099579377, 5.15905529921453, 5.99146454710798, 4.55387689160054, -0.0100503358535015, 5.57972982598622, -0.0100503358535015, 5.01056862520727, 4.31748811353631, 5.01063529409626, 5.29330482472449, 4.86745752441993, 5.58368426104238, 6.18414889093748, 5.14166355650266, 4.33073334028633, 3.91202300542815, 4.85981240436167, 0, 5.85793315448346, 3.91202300542815, 5.52126089785958, 5.82600010738045, 5.29831736654804, 5.07517381523383, 5.298267365298, 5.85790458264672, 3.91202300542815, 6.33850573507843, 4.48863636973214, 5.98896141688986, 5.45099553418974, 4.17438726989564, -0.0100503358535015, -4.60517018598809, -0.0100503358535015, 5.16478597392351, -0.0100503358535015, 4.86745752441993, -0.0100503358535015, 5.52146091786225, 5.01063529409626, 4.31748811353631, 5.52134091066167, 5.2040066870768, 5.7037824746562, 4.69134788222914, 3.63705970538414, 5.99146454710798, 6.27285813844364, -0.0100503358535015, 4.7874084059763, 6.47695697815595, 5.70044357339069, 5.01063529409626, 5.55675083864069, 5.01063529409626, 5.85793315448346, -0.0100503358535015, 5.52142091706223, 5.29831736654804, 4.49980967033027, -0.0100503358535015, 5.22035582507832, 6.21460809842219, 4.67282883446191, 3.80666248977032, 5.63475388824576, 5.62398140445265, 4.55387689160054, 5.94014493658469, 4.97673374242057, -0.0100503358535015, 5.29831736654804, 5.93753620508243, -0.0100503358535015, 5.19295685089021, 5.27223003178472, 5.88610403145016, 6.13828845154878, -0.0100503358535015, 5.61677109766657, 5.52134091066167, 4.31748811353631, 6.21460809842219, 6.49223983502047, 5.88607625328657, 6.26339826259162, -0.0100503358535015, 5.7037491407673, 5.19290129379139, 5.52146091786225, 5.29831736654804, 2.30258509299405, 6.17376527035159, 5.47646355193151, 5.92958914338989, -0.0100503358535015, 5.95324333428778, 5.77762136299107, 5.08759633523238, 2.30258509299405, 5.43372200355424, 6.13120475011641, 5.01050195187324, 4.78749174278205, 3.2188758248682, 6.10922536029523, 5.76205138278018, 5.99146454710798, 4.70048036579242, 5.29976631631314, 5.82891620541297, 5.01063529409626, 6.27285813844364, 5.7037824746562, -0.0100503358535015, 6.21260609575152, 4.38202663467388, 5.26269018890489, 4.59511985013459, -0.0100503358535015, 5.99143954679548, 5.16472882943366, 5.07511131328062, 5.5606431687374, 5.19295685089021, 5.63475388824576, 6.30990009624304, 6.80239476332431, 6.23441072571837, 5.45958551414416, 5.96612109776931, -0.0100503358535015, 5.7037824746562, 4.70048036579242, 5.01063529409626, 5.94003966511579, 4.59511985013459, -0.0100503358535015, 5.95842469302978, 5.52142091706223, 5.19267903452504, 6.38010558760358, 5.13573961179068, 4.38202663467388, 5.10594547390058, 5.19267903452504, 6.06376195260323, 6.13122648948314, 5.15329159449778, 6.57941786478942, 6.21460809842219, 5.29831736654804, 5.43803582971712, 5.01030190519502, 3.21847574484686, 4.60507018098776, 5.02388052084628, 4.49980967033027, 4.45376573182886, -0.0100503358535015, 5.82600010738045, 6.26909628370626, -0.0100503358535015, 6.29147654267877, 4.52178857704904, 5.298267365298, 5.85507192220243, 5.41610040220442, 5.19295685089021, 4.60517018598809, 6.21460809842219, 5.9858236672179, 5.47646355193151, 5.5606431687374, 6.30990009624304, 5.68694145746017, 5.24697143919645, 6.06376195260323, 5.29330482472449, 6.20554717193168, 5.51981957159012, 5.52146091786225, 5.41610040220442, 5.85793315448346, 5.29330482472449, 5.298267365298, -0.0100503358535015, 5.7037824746562, 5.73657229747919, 5.37063802812766, -0.0100503358535015, 5.55230045301322, 5.55636463387013, 5.27811465923052, 5.16472882943366, 6.30991827822652, 4.60517018598809, 6.05197151494464, 5.96612109776931, 5.78382518232974, 6.05676059375064, -0.0100503358535015, 5.28826703069454, 5.01063529409626, 5.99146454710798, 5.85793315448346, 6.20655576523136, 6.21460809842219, 5.82600010738045, 5.7037824746562, 4.59511985013459, 5.66970849432245, 6.30982736500313, 5.55682806169954, 5.01043527409359, 6.47689543685403, 6.42323072963552, 5.60208191982986, 5.16478597392351, 5.94014493658469, 6.39692965521615, 6.37330272458499, 5.79906235097108, 5.52146091786225, 5.7037491407673, 5.82894561761021, 5.96355363634714, 5.7037491407673, 4.85203026391962, 5.01056862520727, 5.66988092298052, 6.67076632084587, 5.41164605185504, 5.53291506790736, -0.0100503358535015, 5.07511131328062, 6.45990445437753, 6.4297033488768, 6.06366892285691, 5.78382518232974, 6.11959387481851, 4.65109911787649, 5.73657229747919, 5.52146091786225, 5.01056862520727, 6.52201926605497, 5.94014493658469, 4.65396035015752, 2.70805020110221, 6.08672927133376, 4.82791365728096, 6.35437004079735, 6.11809719804135, 6.10924758276437, -0.0100503358535015, 6.61873898351722, 6.4377356496084, 5.85790458264672, 6.06378520868761, 5.63121178182137, 5.90800141310672, 5.92692602597041, 6.32466357548024, 5.07479874490374, 6.05208916892442, -0.0100503358535015, 5.52146091786225, 4.59511985013459, 4.60517018598809, 5.97380961186926, 4.60517018598809, 5.07511131328062, 5.5606431687374, 5.85507192220243, 5.2203017695633, 2.30158459266046, 5.03688766524032, 5.95321735992448, 6.36301086201252, 5.29320431716121, 5.01063529409626, 5.56068163101553, 6.50727771238501, 5.94017125272043, 5.88296020591645, 6.84481547920826, 5.63475388824576, 6.35437004079735, 6.29984957673146, 6.24416690066374, 5.85790458264672, -0.0100503358535015, 3.2188758248682, 6.85538772357226, 5.7037824746562, 5.85790458264672, 5.7037491407673, 4.24849524204936, 5.63478960316925, 5.01056862520727, 6.68210859744981, 5.43786189398593, 5.55682806169954, 5.98896141688986, 6.34388043412633, 5.95324333428778, 5.29330482472449, 0, 4.38140143927996, 5.85793315448346, 5.92692602597041, 6.09807428216624, -4.60517018598809, 3.80666248977032, 5.68697535633982, 6.39691298841059, 5.97888576490112, 5.96612109776931, 6.41344256359036, 5.23585668520543, 5.6383190815119, -0.0100503358535015, 4.59511985013459, 5.37063802812766, 5.29831736654804, 5.01063529409626, 6.05208916892442, 5.7037824746562, 6.35437004079735, 6.38856140554563, 6.21236558586941, 5.85793315448346, 4.8283137373023, 5.62398140445265, 6.13111778792317, 5.57972982598622, 6.13120475011641, 5.88677047599332, 5.56830633509375, 6.35217633202897, 5.75257263882563, 5.82894561761021, 6.08677472691231, 5.47222865598202, 6.08675199938131, 5.97888576490112, 5.7037824746562, 5.7037824746562, 6.46145255123165, 5.85793315448346, 6.21236558586941, 5.63300229259515, 6.90675477864855, 6.21458809822219, 4.8283137373023, 5.61677109766657, 5.82891620541297, -0.0100503358535015, 6.47389069635227, 5.39362754635236, 5.7037824746562, 5.27299955856375, 6.54391184556479, 4.59511985013459, 5.29831736654804, 6.39526159811545, 6.26339826259162, 5.19290129379139, 5.7037824746562, 4.60517018598809, 5.01063529409626, 5.78382518232974, 4.60517018598809, 5.98896141688986, 3.95105139239562, 2.67345875633259, 3.80644024285308, 3.43366457179966, 1.38379123090177, 2.19611284848353, 4.8516395626058, 4.24835237470145, 4.93447393313069, 5.85793315448346, 2.2975725511705, 3.3322045101752, 4.26253902205129, 5.54126354515843, 3.35863776724336, 6.62007320653036, -0.0100503358535015, 5.52146091786225, 5.80663986009591, 4.60517018598809, 4.60517018598809, 4.31748811353631, 5.37063802812766, 5.97888576490112, 6.23244801655052, 5.298267365298, 5.66642668811243, 6.46925031679577, -0.0100503358535015, 6.39691298841059, 6.59303083541847, 6.61873898351722, 6.59303083541847, 5.41610040220442, 6.39691298841059, 5.85793315448346, 5.7037824746562, 5.76832099579377, 6.05441587181544, 5.56068163101553, 5.46806014113513, 5.01063529409626, 4.38202663467388, 4.60517018598809, 5.18738580584075, 4.24835237470145, 5.75257263882563, 4.90527477843843, 5.07517381523383, 5.45958551414416, 5.68697535633982, 5.63478960316925, 5.79909265446053, 6.03787091992214, 5.10594547390058, 6.47697236288968, 5.84932477994686, 5.16478597392351, 6.59304453414244, 5.78382518232974, 6.62005987310813, 5.41610040220442, 4.85203026391962, 4.65396035015752, 5.16478597392351, 6.30991827822652, 5.85779028713555, 4.97673374242057, 5.34710753071747, 4.60517018598809, 5.85392513308592, 5.73009978297357, 5.85507192220243, 5.4380793089232, 5.61677109766657, 5.39362754635236, 5.00394630594546, 5.85793315448346, 5.7037824746562, 5.52146091786225, 5.99146454710798, 5.66642668811243, 5.52146091786225, 6.26339826259162, 6.12029741895095, 6.21460809842219, 4.24849524204936, 1.60743590976343, 5.5606431687374, 4.60517018598809, 5.29831736654804, 5.94017125272043, 4.0943445622221, 6.17378610390194, 5.16478597392351, 4.24405683545043, 2.70805020110221, 5.41610040220442, 5.01063529409626, 5.00394630594546, 3.39952932456146, 2.70805020110221, 2.9704144655697, 4.24778070111149, 4.31748811353631, 3.91202300542815, 4.60517018598809, 5.7037491407673, 3.2188758248682, -0.0100503358535015, 4.094177881665, 5.34233425196481, 2.70738331211451, 4.7874084059763, 4.49969855304586, 3.49499126094852, 4.85203026391962, 3.68887945411394, -0.0100503358535015, 5.34233425196481, -0.0100503358535015, 0, 5.29831736654804, 3.2188758248682, 3.40119738166216, 1.6094379124341, 3.68887945411394, 4.3173547713133, 3.39952932456146, 3.68887945411394, 3.91202300542815, 5.24697143919645, 0, 4.24849524204936, 3.91182298542548, 5.99143954679548, 3.91202300542815, 4.60517018598809, -0.0100503358535015, -0.0100503358535015, -0.0100503358535015, 5.01063529409626, 2.70805020110221, 5.52146091786225, 4.97327950755249, -0.0100503358535015, 3.2188758248682, -0.0100503358535015, -0.0100503358535015, 5.01063529409626, -0.0100503358535015, 2.99573227355399, 4.60517018598809, 5.282137170319, 5.01641853885198, -0.0100503358535015, -0.0100503358535015, 3.97010321650467, 2.30158459266046, 4.094177881665, 2.30258509299405, 4.60467006094641, 4.85203026391962, 4.60507018098776, 4.60507018098776, 4.60517018598809, 4.86753445045558, 4.60507018098776, 5.04979190263078, 4.17438726989564, 4.01926175609774, 4.36944785246702, 4.9592718218077, 4.44265125649032, 4.60507018098776, -0.0100503358535015, 4.60467006094641, 4.60517018598809, 4.60517018598809, 4.51085950651685, 5.04342511691925, 3.2188758248682, 5.01063529409626, 6.0282785202307, 5.78382518232974, 2.30158459266046, -0.0100503358535015, 2.99322914333587, 5.94014493658469, 5.01030190519502, 5.01030190519502, 5.73641099414793, 5.85790458264672, 4.3173547713133, 5.52146091786225, 4.82823373410213, 6.016132769157, 5.298267365298, 3.91182298542548, 5.6970934865054, 5.76828974530548, 5.34233425196481, 5.51745289646471, 5.51745289646471, 5.43372200355424, 5.76519110278484, 5.66642668811243, 6.44413125670044, 6.06145691892802, 6.2709884318583, 4.49980967033027, 4.46590811865458, 3.91202300542815, 5.52142091706223, 5.99146454710798, 5.52146091786225, 5.10588486600335, 5.10588486600335, 4.7874084059763, 5.39340024779473, 5.63121178182137, 5.76519110278484, 4.49423862528081, 5.48043056830425, 5.79906235097108, 5.99146454710798, 4.7874084059763, 12.6487153497895, 0.99498743710662, 14.1417820659208, 14.1417820659208, 13.228756555323, 18.1656268815585, 0.99498743710662, 12.2474487139159, 4.47213595499958, 14.1417820659208, 13.5830777072061, 14.4906866641992, 9.74679434480896, 13.6930639376292, 18.1656268815585, 15.4531550176655, 15.8110720699135, 17.6065328784517, 9.48683298050514, 17.3199307157968, 21.9089023002066, 8.88819441731559, 13.7786066058945, 12.6487153497895, 14.1417820659208, 10.7238052947636, 17.0279182520941, 23.4520787991171, 14.4910317093021, 13.6014705087354, 16.0934769394311, 15.4919333848297, 9.21900211519663, 16.4313724320277, 12.6491106406735, 0.99498743710662, 0.99498743710662, 13.9642400437689, 15.968406307456, 10.7238052947636, 12.6471340627037, 8.66025403784439, 11.4017542509914, 10.952168735004, 7.07106781186548, 16.4298508818553, 0.99498743710662, 17.8843507011018, 18.1656268815585, 15.809807082947, 11.4017542509914, 17.464249196573, 0.1, 21.2132034355964, 13.9387947829072, 22.1357177430505, 9.9498743710662, 11.6167981819432, 14.1417820659208, 16.2785134456436, 18.6815416922694, 17.1755640373177, 14.1067359796659, 12.2454073023318, 17.0293863659264, 9.9498743710662, 17.8885438199983, 15.9687194226713, 15.8113883008419, 23.4518655974317, 14.6628782986152, 18.0277563773199, 15.8113883008419, 15.8110720699135, 17.3202193981485, 3.16069612585582, 15.8113883008419, 7.03491293478462, 15, 16.5828224376914, 0.99498743710662, 13.6014705087354, 15.8113883008419, 14.6628782986152, 7.61577310586391, 13.6930639376292, 15.1327459504216, 9.4841973830156, 0.99498743710662, 6.32455532033676, 16.8816468390972, 5.47631262803723, 7.07036066972541, 11.8313143817583, 17.1752729235957, 7.07106781186548, 16.431676725155, 8.94427190999916, 0.1, 19.9997499984375, 13.6930639376292, 7.07106781186548, 0.99498743710662, 8.06225774829855, 9.48630591958745, 13.5996323479718, 15, 14.142135623731, 10, 3.87298334620742, 9.99949998749937, 13.2268665979513, 7.07106781186548, 10, 14.142135623731, 0.99498743710662, 9.48630591958745, 7.07036066972541, 10, 8.94371287553441, 17.6065328784517, 14.142135623731, 7.07106781186548, 12.8452325786651, 5, 17.2916164657906, 9.9498743710662, 13.7477270848675, 8.66025403784439, 21.9089023002066, 0.99498743710662, 7.07106781186548, 1, 12.2474487139159, 6.48074069840786, 19.9997499984375, 20.6155281280883, 18.411952639522, 17.8871462229166, 9.9498743710662, 0.99498743710662, 7.41619848709566, 9.99949998749937, 13.228756555323, 11.8321595661992, 17.3205080756888, 20, 10.7210074153505, 6.70820393249937, 9.4339811320566, 15.1647617851386, 22.3604561670821, 12.2474487139159, 18.3027320365021, 15.8113883008419, 7.07106781186548, 15, 10, 5.47631262803723, 17.464249196573, 8.83176086632785, 10, 19.9749843554382, 0.1, 10, 6.40312423743285, 20.9759385964014, 8.6596766683289, 7.07106781186548, 0.99498743710662, 2.23606797749979, 7.07106781186548, 9.9498743710662, 7.61577310586391, 7.07106781186548, 0.99498743710662, 15.8113883008419, 5, 17.464249196573, 9.99949998749937, 22.3606797749979, 3.16069612585582, 18.5741756210067, 4.46654228682546, 2.23606797749979, 11.13552872566, 0.99498743710662, 9.87420882906575, 10, 4.47213595499958, 9.98749217771909, 15.8113883008419, 20, 6.92820323027551, 17.1755640373177, 11.4017542509914, 17.606816861659, 8.94427190999916, 12.2474487139159, 9.99949998749937, 8.66025403784439, 11.8321595661992, 7.07106781186548, 8.60232526704263, 10, 11.1803398874989, 16.583123951777, 8.66025403784439, 13.7836860091922, 1, 14.1417820659208, 9.9498743710662, 0.99498743710662, 10.9544511501033, 13.6194713553794, 12.2474487139159, 13.4149170701872, 15.556349186104, 3.16069612585582, 7.07106781186548, 16.2772847858603, 8.66025403784439, 3.87298334620742, 13.6747943311773, 3.87298334620742, 8.42614977317636, 14.142135623731, 9.48683298050514, 0.99498743710662, 0.99498743710662, 17.2916164657906, 5.47722557505166, 0.99498743710662, 0.99498743710662, 8.66025403784439, 8.36660026534076, 9.99949998749937, 12.2474487139159, 9.48683298050514, 5.74456264653803, 10.7238052947636, 3.08220700148449, 0.99498743710662, 18.7082869338697, 15.6524758424985, 21.4009345590327, 16.2788205960997, 9.4339811320566, 0.99498743710662, 15.8110720699135, 15.8113883008419, 22.3606797749979, 10, 1, 17.2916164657906, 18.4390889145858, 3.16069612585582, 7.07106781186548, 0.1, 1.41067359796659, 18.0277563773199, 11.1803398874989, 12.2474487139159, 11.1803398874989, 20, 6.32455532033676, 13.7473633835729, 15.8107558326602, 4.47101778122163, 10.4880884817015, 14.142135623731, 11.1803398874989, 1, 13.4160351818263, 10.7238052947636, 7.07106781186548, 6.32455532033676, 11.1781035958699, 0.99498743710662, 10.5593560409714, 17.7482393492988, 12.2474487139159, 10.8627804912002, 9.9498743710662, 12.2474487139159, 19.9997499984375, 7.74532116829251, 9.61717214153932, 9.9498743710662, 12.2470404588211, 13.0380213222713, 10.9544511501033, 17.3205080756888, 17.3205080756888, 12.2065556157337, 10.4880884817015, 9.9498743710662, 14.9993333185179, 9.4339811320566, 12.2470404588211, 9.99949998749937, 20, 0.1, 0.1, 21.7944947177034, 9.9498743710662, 19.8743553354568, 13.228756555323, 7.07106781186548, 17.3205080756888, 19.9997499984375, 3.1543620591175, 7.68114574786861, 7.07106781186548, 15.2970585407784, 18.7080196707188, 8.48528137423857, 19.9997499984375, 22.3383079036887, 6.70820393249937, 12.2474487139159, 0.99498743710662, 13.6014705087354, 14.2123186004255, 17.0290927532855, 14.8320598704293, 16.7032930884901, 12.2474487139159, 0.99498743710662, 14.0712472794703, 17.3205080756888, 17.3205080756888, 10, 7.74596669241483, 9.48683298050514, 13.4164078649987, 5.47722557505166, 26.4565681825894, 0.99498743710662, 23.4520787991171, 0.99498743710662, 14.4913767461894, 13.3790881602597, 8.94427190999916, 12.4498995979887, 12.2474487139159, 14.456832294801, 14.142135623731, 12.2474487139159, 0.99498743710662, 19.8746069143518, 11.1803398874989, 23.6641078428915, 7.74596669241483, 13.228756555323, 13.4164078649987, 10.9544511501033, 12.6471340627037, 7.06753139363385, 0.99498743710662, 12.6095202129185, 7.07106781186548, 23.6643191323985, 23.4499466950354, 12.2470404588211, 8.94371287553441, 28.0178514522438, 14.8323969741913, 18.7069505799315, 0.99498743710662, 10, 7.41619848709566, 15.8113883008419, 13.4164078649987, 9.48630591958745, 21.67925275465, 7.07106781186548, 20, 16.7332005306815, 8.88819441731559, 19.6837496427891, 15.4916106328554, 11.8321595661992, 11.8317369815256, 9.99949998749937, 0.99498743710662, 7.07036066972541, 12.2065556157337, 13.228756555323, 12.2474487139159, 7.07106781186548, 1, 3.16069612585582, 12.2474487139159, 0.99498743710662, 14.8320598704293, 8.94427190999916, 16.9705627484771, 12.6471340627037, 17.8605710994918, 9.99949998749937, 7.48331477354788, 18.4390889145858, 11.4013157135482, 0.99498743710662, 12.2474487139159, 8.94259470176302, 17.3205080756888, 21.4242852856285, 9.99849988748312, 14.8323969741913, 13.0380213222713, 10, 14.1410749237814, 23.6641078428915, 17.8885438199983, 13.1909059582729, 20, 9.74679434480896, 0.99498743710662, 16.2788205960997, 0.99498743710662, 12.2470404588211, 8.66025403784439, 12.2474487139159, 14.1067359796659, 11.4013157135482, 16.3110392066232, 22.0227155455452, 13.076696830622, 8.71779788708135, 7.07106781186548, 11.3578166916005, 1, 18.7082869338697, 7.07106781186548, 15.809807082947, 18.411952639522, 14.142135623731, 12.6491106406735, 14.1417820659208, 18.7080196707188, 7.07106781186548, 23.789703655153, 9.4339811320566, 19.9749843554382, 15.264009958068, 8.06225774829855, 0.99498743710662, 0.1, 0.99498743710662, 13.228756555323, 0.99498743710662, 11.4013157135482, 0.99498743710662, 15.8113883008419, 12.2474487139159, 8.66025403784439, 15.8104395890816, 13.490737563232, 17.3205080756888, 10.4403065089106, 6.16279157525224, 20, 23.0215116792968, 0.99498743710662, 10.9539947051293, 25.4949014510745, 17.2916164657906, 12.2474487139159, 16.0928555576691, 12.2474487139159, 18.7082869338697, 0.99498743710662, 15.8110720699135, 14.142135623731, 9.48683298050514, 0.99498743710662, 13.6014705087354, 22.3606797749979, 10.3440804327886, 6.70820393249937, 16.7329017208612, 16.6430165534977, 9.74679434480896, 19.4933321933424, 12.0415945787923, 0.99498743710662, 14.142135623731, 19.4679223339318, 0.99498743710662, 13.4164078649987, 13.9588681489582, 18.9736659610103, 21.523475555774, 0.99498743710662, 16.583123951777, 15.8104395890816, 8.66025403784439, 22.3606797749979, 25.6904651573303, 18.9734024360419, 22.9128784747792, 0.99498743710662, 17.3202193981485, 13.4160351818263, 15.8113883008419, 14.142135623731, 3.16227766016838, 21.9086740812857, 15.4596248337403, 19.3907194296653, 0.99498743710662, 19.6214168703486, 17.971922546016, 12.7279220613579, 3.16227766016838, 15.1327459504216, 21.4473774620582, 12.2466321901166, 10.9544511501033, 5, 21.2129677320266, 17.832554500127, 20, 10.4880884817015, 14.1523849580203, 18.4388177495196, 12.2474487139159, 23.0215116792968, 17.3205080756888, 0.99498743710662, 22.3383079036887, 8.94427190999916, 13.8924439894498, 9.9498743710662, 0.99498743710662, 19.9997499984375, 13.2283785854503, 12.6487153497895, 16.124205406779, 13.4164078649987, 16.7329017208612, 23.4518655974317, 30, 22.5831795812724, 15.3297097167559, 19.7481644716667, 0.99498743710662, 17.3205080756888, 10.4880884817015, 12.2474487139159, 19.4923061744884, 9.9498743710662, 0.99498743710662, 19.672315572906, 15.8110720699135, 13.4145443455974, 24.2897097553676, 13.0380213222713, 8.94427190999916, 12.8452325786651, 13.4145443455974, 20.7362002305148, 21.4476105895272, 13.1529464379659, 26.8350517048132, 22.3606797749979, 14.142135623731, 15.1654211942827, 12.2454073023318, 4.99899989997999, 9.99949998749937, 12.328828005938, 9.48683298050514, 9.27092228421747, 0.99498743710662, 18.411952639522, 22.9782505861521, 0.99498743710662, 23.2368242236326, 9.59166304662544, 14.1417820659208, 18.6815416922694, 15, 13.4164078649987, 10, 22.3606797749979, 19.9436706751791, 15.4596248337403, 16.124205406779, 23.4518655974317, 17.1752729235957, 13.7836860091922, 20.7362002305148, 14.1067359796659, 22.259604668547, 15.798417642283, 15.8113883008419, 15, 18.7082869338697, 14.1067359796659, 14.1417820659208, 0.99498743710662, 17.3205080756888, 17.606816861659, 14.6628782986152, 0.99498743710662, 16.057085663345, 16.089748288895, 14, 13.2283785854503, 23.4520787991171, 10, 20.614315414294, 19.7481644716667, 18.0277563773199, 20.6637363513959, 0.99498743710662, 14.0712472794703, 12.2474487139159, 20, 18.7082869338697, 22.270832943561, 22.3606797749979, 18.411952639522, 17.3205080756888, 9.9498743710662, 17.0279182520941, 23.4510127713069, 16.0934769394311, 12.2462239078011, 25.4941169684302, 24.8191458354231, 16.4617739019827, 13.228756555323, 19.4933321933424, 24.4948974278318, 24.207230324843, 18.1656268815585, 15.8113883008419, 17.3202193981485, 18.4390889145858, 19.7228294116235, 17.3202193981485, 11.3137084989848, 12.2470404588211, 17.0293863659264, 28.0891438103763, 14.9666295470958, 15.9022011055074, 0.99498743710662, 12.6487153497895, 25.2784493195291, 24.8995983903355, 20.7352357112235, 18.0277563773199, 21.3232267727002, 10.2323017938292, 17.606816861659, 15.8113883008419, 12.2470404588211, 26.0758508969506, 19.4933321933424, 10.2469507659596, 3.87298334620742, 20.9757002266909, 11.1781035958699, 23.9791576165636, 21.3072757526625, 21.2132034355964, 0.99498743710662, 27.367864366808, 24.9997999992, 18.7080196707188, 20.7364413533277, 16.7032930884901, 19.1825441482615, 19.3649167310371, 23.625621684942, 12.646738710039, 20.6155281280883, 0.99498743710662, 15.8113883008419, 9.9498743710662, 10, 19.824227601599, 10, 12.6487153497895, 16.124205406779, 18.6815416922694, 13.6011028964566, 3.16069612585582, 12.4092707279679, 19.6211620450981, 24.0829815429901, 14.1060270806489, 12.2474487139159, 16.1245154965971, 25.8843582110896, 19.4935886896179, 18.9438644420826, 30.6431068920891, 16.7329017208612, 23.9791576165636, 23.3343095033901, 22.6936114358204, 18.7080196707188, 0.99498743710662, 5, 30.8055189860518, 17.3205080756888, 18.7080196707188, 17.3202193981485, 8.36660026534076, 16.7332005306815, 12.2470404588211, 28.2488937836511, 15.1641023473201, 16.0934769394311, 19.9749843554382, 23.8537208837531, 19.6214168703486, 14.1067359796659, 1, 8.94147638815872, 18.7082869338697, 19.3649167310371, 21.095023109729, 0.1, 6.70820393249937, 17.1755640373177, 24.494693302836, 19.8746069143518, 19.7481644716667, 24.6979756255447, 13.7072973266067, 16.7627563365933, 0.99498743710662, 9.9498743710662, 14.6628782986152, 14.142135623731, 12.2474487139159, 20.6155281280883, 17.3205080756888, 23.9791576165636, 24.3926218353009, 22.3356217733019, 18.7082869338697, 11.1803398874989, 16.6430165534977, 21.4464449268404, 16.2788205960997, 21.4473774620582, 18.9799894625893, 16.1861051522595, 23.9528703916671, 17.7482393492988, 18.4390889145858, 20.976176963403, 15.4269245152752, 20.9759385964014, 19.8746069143518, 17.3205080756888, 17.3205080756888, 25.2980236382212, 18.7082869338697, 22.3356217733019, 16.7182534973005, 31.6069612585582, 22.3604561670821, 11.1803398874989, 16.583123951777, 18.4388177495196, 0.99498743710662, 25.4558441227157, 14.8323969741913, 17.3205080756888, 13.9642400437689, 26.3628526529281, 9.9498743710662, 14.142135623731, 24.4744765010408, 22.9128784747792, 13.4160351818263, 17.3205080756888, 10, 12.2474487139159, 18.0277563773199, 10, 19.9749843554382, 7.21040914234414, 3.80657326213486, 6.7074585350936, 5.56686626388671, 1.99749843554382, 2.99833287011299, 11.3114985744595, 8.3660026296912, 11.7898261225516, 18.7082869338697, 3.1543620591175, 5.29150262212918, 8.42555636145175, 15.9687194226713, 5.3619026473818, 27.3861278752583, 0.99498743710662, 15.8113883008419, 18.2345825288105, 10, 10, 8.66025403784439, 14.6628782986152, 19.8746069143518, 22.561028345357, 14.1417820659208, 17, 25.3968501984006, 0.99498743710662, 24.494693302836, 27.0183271132763, 27.367864366808, 27.0183271132763, 15, 24.494693302836, 18.7082869338697, 17.3205080756888, 17.8885438199983, 20.6395251883371, 16.1245154965971, 15.3948043183407, 12.2474487139159, 8.94427190999916, 10, 13.3790881602597, 8.3660026296912, 17.7482393492988, 11.6189500386223, 12.6491106406735, 15.3297097167559, 17.1755640373177, 16.7332005306815, 18.1659021245849, 20.4694894904587, 12.8452325786651, 25.4950975679639, 18.6279360101972, 13.228756555323, 27.0185121722126, 18.0277563773199, 27.3859453004639, 15, 11.3137084989848, 10.2469507659596, 13.228756555323, 23.4520787991171, 18.7069505799315, 12.0415945787923, 14.4913767461894, 10, 18.6708328684073, 17.5499287747842, 18.6815416922694, 15.1657508881031, 16.583123951777, 14.8323969741913, 12.2065556157337, 18.7082869338697, 17.3205080756888, 15.8113883008419, 20, 17, 15.8113883008419, 22.9128784747792, 21.3307290077015, 22.3606797749979, 8.36660026534076, 2.23383079036887, 16.124205406779, 10, 14.142135623731, 19.4935886896179, 7.74596669241483, 21.9089023002066, 13.228756555323, 8.34805366537614, 3.87298334620742, 15, 12.2474487139159, 12.2065556157337, 5.47265931700485, 3.87298334620742, 4.41588043316392, 8.36361166004257, 8.66025403784439, 7.07106781186548, 10, 17.3202193981485, 5, 0.99498743710662, 7.74532116829251, 14.456832294801, 3.87169213652119, 10.9539947051293, 9.48630591958745, 5.74020905542647, 11.3137084989848, 6.32455532033676, 0.99498743710662, 14.456832294801, 0.99498743710662, 1, 14.142135623731, 5, 5.47722557505166, 2.23606797749979, 6.32455532033676, 8.6596766683289, 5.47265931700485, 6.32455532033676, 7.07106781186548, 13.7836860091922, 1, 8.36660026534076, 7.07036066972541, 19.9997499984375, 7.07106781186548, 10, 0.99498743710662, 0.99498743710662, 0.99498743710662, 12.2474487139159, 3.87298334620742, 15.8113883008419, 12.0208152801713, 0.99498743710662, 5, 0.99498743710662, 0.99498743710662, 12.2474487139159, 0.99498743710662, 4.47213595499958, 10, 14.0281859126546, 12.2829149634767, 0.99498743710662, 0.99498743710662, 7.27942305406136, 3.16069612585582, 7.74532116829251, 3.16227766016838, 9.99749968742185, 11.3137084989848, 9.99949998749937, 9.99949998749937, 10, 11.4017542509914, 9.99949998749937, 12.4895956699967, 8.06225774829855, 7.46056298143779, 8.88819441731559, 11.9369175250565, 9.21954445729289, 9.99949998749937, 0.99498743710662, 9.99749968742185, 10, 10, 9.53939201416946, 12.4498995979887, 5, 12.2474487139159, 20.3715487874634, 18.0277563773199, 3.16069612585582, 0.99498743710662, 4.46654228682546, 19.4933321933424, 12.2454073023318, 12.2454073023318, 17.6053968998146, 18.7080196707188, 8.6596766683289, 15.8113883008419, 11.1798926649588, 20.2482097974117, 14.1417820659208, 7.07036066972541, 17.2626765016321, 17.8882643093174, 14.456832294801, 15.7797338380595, 15.7797338380595, 15.1327459504216, 17.8605710994918, 17, 25.0798724079689, 20.712315177208, 23, 9.48683298050514, 9.32737905308882, 7.07106781186548, 15.8110720699135, 20, 15.8113883008419, 12.8448433232951, 12.8448433232951, 10.9539947051293, 14.8307113787573, 16.7032930884901, 17.8605710994918, 9.46044396421225, 15.4903195577109, 18.1656268815585, 20, 10.9539947051293, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(1018L, 99L), .Dimnames = list(c("1", "2", "3", "5", "6", "8", "9", "10", "13", "15", "17", "18", "20", "22", "24", "26", "28", "29", "32", "33", "36", "38", "39", "40", "41", "42", "43", "46", "47", "48", "52", "53", "57", "58", "61", "62", "64", "65", "69", "70", "71", "74", "76", "77", "78", "79", "81", "83", "84", "85", "86", "90", "91", "92", "93", "96", "97", "99", "100", "101", "102", "104", "105", "107", "108", "110", "111", "112", "115", "116", "117", "118", "120", "121", "122", "124", "128", "134", "135", "139", "140", "141", "142", "144", "145", "146", "148", "150", "152", "154", "155", "156", "157", "158", "160", "162", "164", "165", "166", "167", "171", "173", "174", "175", "176", "178", "180", "181", "182", "184", "186", "187", "190", "194", "195", "198", "200", "201", "202", "203", "204", "206", "209", "210", "211", "212", "213", "216", "217", "219", "220", "224", "226", "228", "230", "231", "232", "234", "236", "237", "238", "240", "241", "242", "243", "245", "246", "249", "250", "251", "254", "257", "259", "260", "261", "263", "264", "269", "270", "272", "275", "278", "279", "281", "284", "286", "287", "288", "290", "291", "293", "295", "298", "301", "303", "305", "307", "309", "312", "313", "314", "318", "319", "321", "322", "325", "327", "329", "331", "333", "334", "335", "338", "339", "342", "343", "344", "345", "346", "347", "349", "350", "351", "354", "356", "357", "358", "360", "361", "364", "366", "369", "370", "372", "373", "375", "376", "377", "378", "379", "382", "383", "384", "387", "389", "392", "393", "394", "396", "397", "398", "399", "400", "402", "404", "405", "407", "410", "411", "414", "416", "418", "421", "422", "426", "427", "428", "429", "430", "433", "434", "435", "436", "437", "438", "439", "441", "442", "445", "451", "452", "453", "455", "456", "460", "462", "464", "466", "469", "470", "471", "473", "474", "476", "481", "483", "487", "493", "496", "498", "499", "503", "506", "509", "510", "512", "513", "515", "516", "518", "519", "520", "524", "526", "527", "529", "530", "531", "533", "535", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "562", "564", "565", "568", "569", "571", "572", "573", "574", "576", "577", "584", "585", "586", "591", "592", "593", "596", "597", "599", "600", "603", "604", "605", "606", "607", "608", "609", "610", "611", "614", "615", "616", "618", "620", "624", "625", "627", "629", "631", "637", "638", "639", "640", "641", "642", "643", "645", "647", "649", "653", "654", "656", "657", "660", "662", "663", "666", "667", "669", "670", "674", "676", "678", "679", "682", "683", "684", "687", "691", "693", "694", "695", "696", "697", "698", "705", "707", "709", "715", "716", "717", "718", "720", "722", "723", "724", "725", "726", "727", "729", "730", "735", "736", "738", "739", "740", "741", "743", "744", "745", "748", "749", "751", "752", "753", "756", "759", "765", "771", "773", "774", "775", "776", "778", "779", "781", "782", "783", "785", "786", "787", "788", "795", "796", "797", "799", "803", "804", "805", "807", "809", "811", "814", "816", "817", "818", "819", "821", "822", "823", "825", "830", "831", "832", "834", "835", "836", "837", "839", "842", "844", "845", "846", "848", "849", "852", "853", "854", "856", "858", "861", "864", "865", "868", "870", "871", "872", "874", "876", "878", "879", "881", "882", "884", "885", "886", "888", "889", "893", "901", "904", "905", "906", "907", "908", "910", "912", "914", "916", "919", "920", "924", "926", "927", "928", "929", "930", "931", "933", "935", "936", "938", "940", "941", "942", "943", "944", "945", "946", "947", "949", "950", "951", "955", "957", "960", "961", "962", "963", "964", "965", "966", "967", "970", "974", "976", "979", "980", "981", "982", "985", "988", "989", "991", "992", "994", "995", "996", "998", "999", "1000", "1001", "1004", "1005", "1008", "1009", "1011", "1012", "1016", "1018", "1020", "1023", "1024", "1025", "1027", "1030", "1034", "1035", "1036", "1038", "1039", "1040", "1042", "1043", "1044", "1046", "1048", "1049", "1051", "1055", "1056", "1058", "1059", "1063", "1064", "1065", "1067", "1068", "1069", "1070", "1071", "1074", "1075", "1087", "1088", "1091", "1092", "1093", "1096", "1097", "1099", "1100", "1102", "1103", "1104", "1105", "1106", "1113", "1114", "1115", "1116", "1118", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1132", "1133", "1134", "1135", "1137", "1138", "1140", "1142", "1144", "1148", "1149", "1150", "1154", "1156", "1160", "1164", "1166", "1169", "1170", "1171", "1173", "1174", "1175", "1176", "1177", "1179", "1180", "1183", "1184", "1188", "1189", "1190", "1191", "1194", "1195", "1198", "1200", "1201", "1204", "1205", "1206", "1207", "1208", "1211", "1212", "1213", "1215", "1216", "1220", "1221", "1222", "1223", "1228", "1230", "1232", "1234", "1235", "1236", "1237", "1239", "1240", "1241", "1243", "1244", "1246", "1247", "1250", "1251", "1253", "1257", "1258", "1262", "1263", "1264", "1265", "1266", "1267", "1269", "1270", "1274", "1276", "1281", "1283", "1284", "1289", "1291", "1296", "1299", "1304", "1307", "1308", "1310", "1312", "1313", "1316", "1317", "1318", "1321", "1322", "1323", "1325", "1326", "1329", "1330", "1332", "1333", "1334", "1336", "1337", "1338", "1339", "1340", "1344", "1345", "1347", "1349", "1352", "1356", "1357", "1359", "1360", "1363", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1374", "1375", "1376", "1380", "1381", "1385", "1386", "1387", "1389", "1390", "1392", "1394", "1395", "1398", "1399", "1400", "1403", "1404", "1405", "1406", "1410", "1417", "1418", "1419", "1420", "1421", "1425", "1426", "1427", "1428", "1429", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1444", "1445", "1446", "1448", "1449", "1450", "1451", "1452", "1454", "1455", "1456", "1457", "1460", "1462", "1463", "1465", "1466", "1468", "1472", "1473", "1474", "1476", "1478", "1479", "1480", "1481", "1483", "1485", "1487", "1488", "1490", "1491", "1492", "1493", "1494", "1496", "1497", "1498", "1500", "1501", "1502", "1503", "1504", "1505", "1508", "1509", "1514", "1515", "1516", "1518", "1519", "1521", "1524", "1525", "1526", "1528", "1529", "1530", "1531", "1532", "1534", "1535", "1537", "1539", "1540", "1541", "1545", "1546", "1550", "1552", "1553", "1555", "1557", "1558", "1559", "1561", "1562", "1564", "1569", "1570", "1574", "1575", "1576", "1579", "1581", "1584", "1585", "1586", "1587", "1589", "1591", "1595", "1599", "1600", "1602", "1604", "1605", "1606", "1607", "1609", "1610", "1615", "1616", "1620", "1624", "1625", "1630", "1631", "1632", "1634", "1637", "1638", "1640", "1645", "1648", "1650", "1652", "1653", "1657", "1658", "1660", "1661", "1662", "1663", "1668", "1669", "1670", "1671", "1673", "1677", "1678", "1680", "1681", "1682", "1683", "1685", "1688", "1693", "1697", "1700", "1701", "1702", "1704", "1706", "1708", "1709", "1710", "1711", "1713", "1717", "1718", "1723", "1724", "1725", "1726", "1730", "1731", "1732", "1733", "1734", "1736", "1737", "1740", "1744", "1745", "1746", "1747", "1748", "1749", "1751", "1753", "1754", "1755", "1759", "1760", "1761", "1762", "1768", "1769", "1774", "1776", "1777", "1778", "1779", "1780", "1782", "1791", "1792", "1793", "1794", "1797", "1799", "1803", "1804", "1805", "1808", "1809", "1813", "1816", "1817", "1822", "1823", "1824", "1827", "1828", "1829", "1830", "1834", "1835", "1836", "1838", "1839", "1840", "1842", "1843", "1845", "1846", "1847", "1848", "1850"), c("D.chrs.n.log", "D.chrs.pnct11.n.log", "D.chrs.pnct13.n.log", "D.chrs.uppr.n.log", "D.ratio.weight.sum.wrds.n", "D.ratio.wrds.stop.n.wrds.n", "D.terms.post.stem.n.log", "D.terms.post.stop.n.log", "D.weight.post.stem.sum", "D.weight.post.stop.sum", "D.weight.sum", "D.weight.sum.stem.stop.Ratio", "D.wrds.n.log", "D.wrds.stop.n.log", "D.wrds.unq.n.log", "cellular.fctr1", "cellular.fctrUnknown", "color.fctrGold", "color.fctrSpace Gray", "color.fctrUnknown", "color.fctrWhite", "condition.fctrFor parts or not working", "condition.fctrManufacturer refurbished", "condition.fctrNew", "condition.fctrNew other (see details)", "condition.fctrSeller refurbished", "prdl.my.fctriPad1", "prdl.my.fctriPad2", "prdl.my.fctriPad3", "prdl.my.fctriPad4", "prdl.my.fctriPadAir", "prdl.my.fctriPadAir2", "prdl.my.fctriPadmini", "prdl.my.fctriPadmini2", "prdl.my.fctriPadmini3", "spdiff.cut.fctr(-100,-10]", "spdiff.cut.fctr(-10,-1]", "spdiff.cut.fctr(-1,0]", "spdiff.cut.fctr(0,1]", "spdiff.cut.fctr(1,10]", "spdiff.cut.fctr(10,100]", "spdiff.cut.fctr(100,1e+03]", "biddable", "sprice.d20nexp", "sprice.log10", "sprice.root2", "startprice.dcm1.is9", "startprice.dcm2.is9", "startprice.dgt1.is9", "startprice.dgt2.is9", "storage.fctr16", "storage.fctr32", "storage.fctr64", "storage.fctrUnknown", "cellular.fctr0:carrier.fctrNone", "cellular.fctr1:carrier.fctrNone", "cellular.fctrUnknown:carrier.fctrNone", "cellular.fctr0:carrier.fctrOther", "cellular.fctr1:carrier.fctrOther", "cellular.fctrUnknown:carrier.fctrOther", "cellular.fctr0:carrier.fctrSprint", "cellular.fctr1:carrier.fctrSprint", "cellular.fctrUnknown:carrier.fctrSprint", "cellular.fctr0:carrier.fctrT-Mobile", "cellular.fctr1:carrier.fctrT-Mobile", "cellular.fctrUnknown:carrier.fctrT-Mobile", "cellular.fctr0:carrier.fctrUnknown", "cellular.fctr1:carrier.fctrUnknown", "cellular.fctrUnknown:carrier.fctrUnknown", "cellular.fctr0:carrier.fctrVerizon", "cellular.fctr1:carrier.fctrVerizon", "cellular.fctrUnknown:carrier.fctrVerizon", "prdl.my.fctrUnknown:.clusterid.fctr2", "prdl.my.fctriPad1:.clusterid.fctr2", "prdl.my.fctriPad2:.clusterid.fctr2", "prdl.my.fctriPad3:.clusterid.fctr2", "prdl.my.fctriPad4:.clusterid.fctr2", "prdl.my.fctriPadAir:.clusterid.fctr2", "prdl.my.fctriPadAir2:.clusterid.fctr2", "prdl.my.fctriPadmini:.clusterid.fctr2", "prdl.my.fctriPadmini2:.clusterid.fctr2", "prdl.my.fctriPadmini3:.clusterid.fctr2", "prdl.my.fctrUnknown:.clusterid.fctr3", "prdl.my.fctriPad1:.clusterid.fctr3", "prdl.my.fctriPad2:.clusterid.fctr3", "prdl.my.fctriPad3:.clusterid.fctr3", "prdl.my.fctriPad4:.clusterid.fctr3", "prdl.my.fctriPadAir:.clusterid.fctr3", "prdl.my.fctriPadAir2:.clusterid.fctr3", "prdl.my.fctriPadmini:.clusterid.fctr3", "prdl.my.fctriPadmini2:.clusterid.fctr3", "prdl.my.fctriPadmini3:.clusterid.fctr3", "spdiff.cut.fctr(-100,-10]:biddable", "spdiff.cut.fctr(-10,-1]:biddable", "spdiff.cut.fctr(-1,0]:biddable", "spdiff.cut.fctr(0,1]:biddable", "spdiff.cut.fctr(1,10]:biddable", "spdiff.cut.fctr(10,100]:biddable", "spdiff.cut.fctr(100,1e+03]:biddable"))), y = structure(c(1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L), .Label = c("N", "Y"), class = "factor", .Names = c("1", "2", "3", "5", "6", "8", "9", "10", "13", "15", "17", "18", "20", "22", "24", "26", "28", "29", "32", "33", "36", "38", "39", "40", "41", "42", "43", "46", "47", "48", "52", "53", "57", "58", "61", "62", "64", "65", "69", "70", "71", "74", "76", "77", "78", "79", "81", "83", "84", "85", "86", "90", "91", "92", "93", "96", "97", "99", "100", "101", "102", "104", "105", "107", "108", "110", "111", "112", "115", "116", "117", "118", "120", "121", "122", "124", "128", "134", "135", "139", "140", "141", "142", "144", "145", "146", "148", "150", "152", "154", "155", "156", "157", "158", "160", "162", "164", "165", "166", "167", "171", "173", "174", "175", "176", "178", "180", "181", "182", "184", "186", "187", "190", "194", "195", "198", "200", "201", "202", "203", "204", "206", "209", "210", "211", "212", "213", "216", "217", "219", "220", "224", "226", "228", "230", "231", "232", "234", "236", "237", "238", "240", "241", "242", "243", "245", "246", "249", "250", "251", "254", "257", "259", "260", "261", "263", "264", "269", "270", "272", "275", "278", "279", "281", "284", "286", "287", "288", "290", "291", "293", "295", "298", "301", "303", "305", "307", "309", "312", "313", "314", "318", "319", "321", "322", "325", "327", "329", "331", "333", "334", "335", "338", "339", "342", "343", "344", "345", "346", "347", "349", "350", "351", "354", "356", "357", "358", "360", "361", "364", "366", "369", "370", "372", "373", "375", "376", "377", "378", "379", "382", "383", "384", "387", "389", "392", "393", "394", "396", "397", "398", "399", "400", "402", "404", "405", "407", "410", "411", "414", "416", "418", "421", "422", "426", "427", "428", "429", "430", "433", "434", "435", "436", "437", "438", "439", "441", "442", "445", "451", "452", "453", "455", "456", "460", "462", "464", "466", "469", "470", "471", "473", "474", "476", "481", "483", "487", "493", "496", "498", "499", "503", "506", "509", "510", "512", "513", "515", "516", "518", "519", "520", "524", "526", "527", "529", "530", "531", "533", "535", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "562", "564", "565", "568", "569", "571", "572", "573", "574", "576", "577", "584", "585", "586", "591", "592", "593", "596", "597", "599", "600", "603", "604", "605", "606", "607", "608", "609", "610", "611", "614", "615", "616", "618", "620", "624", "625", "627", "629", "631", "637", "638", "639", "640", "641", "642", "643", "645", "647", "649", "653", "654", "656", "657", "660", "662", "663", "666", "667", "669", "670", "674", "676", "678", "679", "682", "683", "684", "687", "691", "693", "694", "695", "696", "697", "698", "705", "707", "709", "715", "716", "717", "718", "720", "722", "723", "724", "725", "726", "727", "729", "730", "735", "736", "738", "739", "740", "741", "743", "744", "745", "748", "749", "751", "752", "753", "756", "759", "765", "771", "773", "774", "775", "776", "778", "779", "781", "782", "783", "785", "786", "787", "788", "795", "796", "797", "799", "803", "804", "805", "807", "809", "811", "814", "816", "817", "818", "819", "821", "822", "823", "825", "830", "831", "832", "834", "835", "836", "837", "839", "842", "844", "845", "846", "848", "849", "852", "853", "854", "856", "858", "861", "864", "865", "868", "870", "871", "872", "874", "876", "878", "879", "881", "882", "884", "885", "886", "888", "889", "893", "901", "904", "905", "906", "907", "908", "910", "912", "914", "916", "919", "920", "924", "926", "927", "928", "929", "930", "931", "933", "935", "936", "938", "940", "941", "942", "943", "944", "945", "946", "947", "949", "950", "951", "955", "957", "960", "961", "962", "963", "964", "965", "966", "967", "970", "974", "976", "979", "980", "981", "982", "985", "988", "989", "991", "992", "994", "995", "996", "998", "999", "1000", "1001", "1004", "1005", "1008", "1009", "1011", "1012", "1016", "1018", "1020", "1023", "1024", "1025", "1027", "1030", "1034", "1035", "1036", "1038", "1039", "1040", "1042", "1043", "1044", "1046", "1048", "1049", "1051", "1055", "1056", "1058", "1059", "1063", "1064", "1065", "1067", "1068", "1069", "1070", "1071", "1074", "1075", "1087", "1088", "1091", "1092", "1093", "1096", "1097", "1099", "1100", "1102", "1103", "1104", "1105", "1106", "1113", "1114", "1115", "1116", "1118", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1132", "1133", "1134", "1135", "1137", "1138", "1140", "1142", "1144", "1148", "1149", "1150", "1154", "1156", "1160", "1164", "1166", "1169", "1170", "1171", "1173", "1174", "1175", "1176", "1177", "1179", "1180", "1183", "1184", "1188", "1189", "1190", "1191", "1194", "1195", "1198", "1200", "1201", "1204", "1205", "1206", "1207", "1208", "1211", "1212", "1213", "1215", "1216", "1220", "1221", "1222", "1223", "1228", "1230", "1232", "1234", "1235", "1236", "1237", "1239", "1240", "1241", "1243", "1244", "1246", "1247", "1250", "1251", "1253", "1257", "1258", "1262", "1263", "1264", "1265", "1266", "1267", "1269", "1270", "1274", "1276", "1281", "1283", "1284", "1289", "1291", "1296", "1299", "1304", "1307", "1308", "1310", "1312", "1313", "1316", "1317", "1318", "1321", "1322", "1323", "1325", "1326", "1329", "1330", "1332", "1333", "1334", "1336", "1337", "1338", "1339", "1340", "1344", "1345", "1347", "1349", "1352", "1356", "1357", "1359", "1360", "1363", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1374", "1375", "1376", "1380", "1381", "1385", "1386", "1387", "1389", "1390", "1392", "1394", "1395", "1398", "1399", "1400", "1403", "1404", "1405", "1406", "1410", "1417", "1418", "1419", "1420", "1421", "1425", "1426", "1427", "1428", "1429", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1444", "1445", "1446", "1448", "1449", "1450", "1451", "1452", "1454", "1455", "1456", "1457", "1460", "1462", "1463", "1465", "1466", "1468", "1472", "1473", "1474", "1476", "1478", "1479", "1480", "1481", "1483", "1485", "1487", "1488", "1490", "1491", "1492", "1493", "1494", "1496", "1497", "1498", "1500", "1501", "1502", "1503", "1504", "1505", "1508", "1509", "1514", "1515", "1516", "1518", "1519", "1521", "1524", "1525", "1526", "1528", "1529", "1530", "1531", "1532", "1534", "1535", "1537", "1539", "1540", "1541", "1545", "1546", "1550", "1552", "1553", "1555", "1557", "1558", "1559", "1561", "1562", "1564", "1569", "1570", "1574", "1575", "1576", "1579", "1581", "1584", "1585", "1586", "1587", "1589", "1591", "1595", "1599", "1600", "1602", "1604", "1605", "1606", "1607", "1609", "1610", "1615", "1616", "1620", "1624", "1625", "1630", "1631", "1632", "1634", "1637", "1638", "1640", "1645", "1648", "1650", "1652", "1653", "1657", "1658", "1660", "1661", "1662", "1663", "1668", "1669", "1670", "1671", "1673", "1677", "1678", "1680", "1681", "1682", "1683", "1685", "1688", "1693", "1697", "1700", "1701", "1702", "1704", "1706", "1708", "1709", "1710", "1711", "1713", "1717", "1718", "1723", "1724", "1725", "1726", "1730", "1731", "1732", "1733", "1734", "1736", "1737", "1740", "1744", "1745", "1746", "1747", "1748", "1749", "1751", "1753", "1754", "1755", "1759", "1760", "1761", "1762", "1768", "1769", "1774", "1776", "1777", "1778", "1779", "1780", "1782", "1791", "1792", "1793", "1794", "1797", "1799", "1803", "1804", "1805", "1808", "1809", "1813", "1816", "1817", "1822", "1823", "1824", "1827", "1828", "1829", "1830", "1834", "1835", "1836", "1838", "1839", "1840", "1842", "1843", "1845", "1846", "1847", "1848", "1850")), degree = 1, nprune = 64, keepxy = TRUE, glm = structure(list( family = function (link = "logit") { linktemp <- substitute(link) if (!is.character(linktemp)) linktemp <- deparse(linktemp) okLinks <- c("logit", "probit", "cloglog", "cauchit", "log") if (linktemp %in% okLinks) stats <- make.link(linktemp) else if (is.character(link)) { stats <- make.link(link) linktemp <- link } else { if (inherits(link, "link-glm")) { stats <- link if (!is.null(stats$name)) linktemp <- stats$name } else { stop(gettextf("link \"%s\" not available for binomial family; available links are %s", linktemp, paste(sQuote(okLinks), collapse = ", ")), domain = NA) } } variance <- function(mu) mu * (1 - mu) validmu <- function(mu) all(is.finite(mu)) && all(mu > 0 & mu < 1) dev.resids <- function(y, mu, wt) .Call(C_binomial_dev_resids, y, mu, wt) aic <- function(y, n, mu, wt, dev) { m <- if (any(n > 1)) n else wt -2 * sum(ifelse(m > 0, (wt/m), 0) * dbinom(round(m * y), round(m), mu, log = TRUE)) } initialize <- expression({ if (NCOL(y) == 1) { if (is.factor(y)) y <- y != levels(y)[1L] n <- rep.int(1, nobs) y[weights == 0] <- 0 if (any(y < 0 | y > 1)) stop("y values must be 0 <= y <= 1") mustart <- (weights * y + 0.5)/(weights + 1) m <- weights * y if (any(abs(m - round(m)) > 0.001)) warning("non-integer #successes in a binomial glm!") } else if (NCOL(y) == 2) { if (any(abs(y - round(y)) > 0.001)) warning("non-integer counts in a binomial glm!") n <- y[, 1] + y[, 2] y <- ifelse(n == 0, 0, y[, 1]/n) weights <- weights * n mustart <- (n * y + 0.5)/(n + 1) } else stop("for the 'binomial' family, y must be a vector of 0 and 1's\nor a 2 column matrix where col 1 is no. successes and col 2 is no. failures") }) simfun <- function(object, nsim) { ftd <- fitted(object) n <- length(ftd) ntot <- n * nsim wts <- object$prior.weights if (any(wts%%1 != 0)) stop("cannot simulate from non-integer prior.weights") if (!is.null(m <- object$model)) { y <- model.response(m) if (is.factor(y)) { yy <- factor(1 + rbinom(ntot, size = 1, prob = ftd), labels = levels(y)) split(yy, rep(seq_len(nsim), each = n)) } else if (is.matrix(y) && ncol(y) == 2) { yy <- vector("list", nsim) for (i in seq_len(nsim)) { Y <- rbinom(n, size = wts, prob = ftd) YY <- cbind(Y, wts - Y) colnames(YY) <- colnames(y) yy[[i]] <- YY } yy } else rbinom(ntot, size = wts, prob = ftd)/wts } else rbinom(ntot, size = wts, prob = ftd)/wts } structure(list(family = "binomial", link = linktemp, linkfun = stats$linkfun, linkinv = stats$linkinv, variance = variance, dev.resids = dev.resids, aic = aic, mu.eta = stats$mu.eta, initialize = initialize, validmu = validmu, valideta = stats$valideta, simulate = simfun), class = "family") }), .Names = "family"))
##
## Out of bag statistics:
##
## Accuracy Kappa
## 0% 0.7540 0.5015
## 2.5% 0.7680 0.5319
## 25% 0.7906 0.5806
## 50% 0.8028 0.6034
## 75% 0.8158 0.6307
## 97.5% 0.8387 0.6773
## 100% 0.8496 0.6945
##
## Model Selection Statistics:
##
## Num Terms Num Variables
## Length:1515 Length:1515
## Class :character Class :character
## Mode :character Mode :character
## sold.fctr sold.fctr.predict.CSM.X.bagEarth.N
## 1 N 505
## 2 Y 70
## sold.fctr.predict.CSM.X.bagEarth.Y
## 1 43
## 2 400
## Prediction
## Reference N Y
## N 505 43
## Y 70 400
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.889980e-01 7.757683e-01 8.680742e-01 9.076395e-01 5.383104e-01
## AccuracyPValue McnemarPValue
## 2.794828e-129 1.445014e-02
## sold.fctr sold.fctr.predict.CSM.X.bagEarth.N
## 1 N 378
## 2 Y 92
## sold.fctr.predict.CSM.X.bagEarth.Y
## 1 69
## 2 291
## Prediction
## Reference N Y
## N 378 69
## Y 92 291
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.060241e-01 6.080427e-01 7.774536e-01 8.324015e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.343454e-58 8.294596e-02
## id
## 1 CSM.X.bagEarth
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 1 106.994 52.371
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8862983 0.9215328 0.8510638 0.9562374
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.5 0.8762322 0.8027402
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8680742 0.9076395 0.6008468
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.8027144 0.8456376 0.7597911 0.8751643
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.5 0.7833109 0.8060241
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7774536 0.8324015 0.6080427
## label step_major step_minor label_minor bgn end
## 12 fit.models_1_CSM.X 2 10 bagEarth 632.678 761.087
## 13 fit.models_1_RFE.X 3 0 setup 761.088 NA
## elapsed
## 12 128.41
## 13 NA
## Warning in if (grepl("^%<d-%", indep_vars)) {: the condition has length > 1
## and only the first element will be used
## label step_major step_minor label_minor bgn end
## 13 fit.models_1_RFE.X 3 0 setup 761.088 761.101
## 14 fit.models_1_RFE.X 3 1 glmnet 761.101 NA
## elapsed
## 13 0.013
## 14 NA
## [1] "fitting model: RFE.X.glmnet"
## [1] " indep_vars: sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.55, lambda = 0.00124 on full training set
## Length Class Mode
## a0 100 -none- numeric
## beta 9300 dgCMatrix S4
## df 100 -none- numeric
## dim 2 -none- numeric
## lambda 100 -none- numeric
## dev.ratio 100 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 93 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept)
## 1.63021978
## .rnorm
## -0.02801612
## D.chrs.pnct11.n.log
## 0.40561975
## D.chrs.pnct13.n.log
## -0.09288705
## D.ratio.weight.sum.wrds.n
## -0.08839642
## D.ratio.wrds.stop.n.wrds.n
## -0.25880885
## D.weight.post.stem.sum
## -0.04753825
## D.weight.sum
## -0.02322303
## D.weight.sum.stem.stop.Ratio
## -2.19018201
## biddable
## 2.41744637
## cellular.fctrUnknown
## -0.73950044
## color.fctrGold
## 0.02954856
## color.fctrSpace Gray
## -0.32846103
## color.fctrUnknown
## 0.32390652
## color.fctrWhite
## -0.20721212
## condition.fctrFor parts or not working
## -0.62794212
## condition.fctrManufacturer refurbished
## -1.07398396
## condition.fctrNew
## -0.01745976
## condition.fctrNew other (see details)
## 0.60902488
## condition.fctrSeller refurbished
## -0.96233940
## prdl.my.fctriPad1
## -0.62517912
## prdl.my.fctriPad2
## -0.42529882
## prdl.my.fctriPad3
## 0.10216597
## prdl.my.fctriPad4
## 1.07944310
## prdl.my.fctriPadAir
## 1.23565602
## prdl.my.fctriPadAir2
## 1.66029713
## prdl.my.fctriPadmini
## -0.46509412
## prdl.my.fctriPadmini2
## 1.09678817
## prdl.my.fctriPadmini3
## 0.55103428
## spdiff.cut.fctr(-100,-10]
## 2.04564296
## spdiff.cut.fctr(-10,-1]
## 3.77265013
## spdiff.cut.fctr(-1,0]
## 4.71456242
## spdiff.cut.fctr(0,1]
## 3.78173746
## spdiff.cut.fctr(1,10]
## 4.01508564
## spdiff.cut.fctr(10,100]
## 3.48091977
## spdiff.cut.fctr(100,1e+03]
## 0.76281336
## sprice.log10
## -0.24956516
## sprice.root2
## -0.12998047
## startprice.dcm1.is9
## -0.44624284
## startprice.dcm2.is9
## -0.08817862
## startprice.dgt2.is9
## 0.12405658
## storage.fctr16
## -0.09211417
## storage.fctr64
## 0.20763160
## storage.fctrUnknown
## 1.49205188
## cellular.fctr0:carrier.fctrNone
## 0.14909087
## cellular.fctr1:carrier.fctrSprint
## 0.93642895
## cellular.fctr1:carrier.fctrT-Mobile
## -0.27541726
## cellular.fctrUnknown:carrier.fctrUnknown
## -0.66554181
## cellular.fctr1:carrier.fctrVerizon
## 0.24316402
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.80275198
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.52656480
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.33067263
## prdl.my.fctriPad4:.clusterid.fctr2
## -1.08816529
## prdl.my.fctriPadAir:.clusterid.fctr2
## -0.17641114
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.48059277
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.63242235
## prdl.my.fctriPad1:.clusterid.fctr3
## -0.87796569
## prdl.my.fctriPad4:.clusterid.fctr3
## -4.11287913
## [1] "max lambda < lambdaOpt:"
## (Intercept)
## 1.70075206
## .rnorm
## -0.02949827
## D.chrs.pnct11.n.log
## 0.40977083
## D.chrs.pnct13.n.log
## -0.09943187
## D.ratio.weight.sum.wrds.n
## -0.08578622
## D.ratio.wrds.stop.n.wrds.n
## -0.32964948
## D.weight.post.stem.sum
## -0.05512101
## D.weight.sum
## -0.02628552
## D.weight.sum.stem.stop.Ratio
## -2.23281179
## biddable
## 2.43114198
## cellular.fctrUnknown
## -0.74699138
## color.fctrGold
## 0.03638316
## color.fctrSpace Gray
## -0.33206167
## color.fctrUnknown
## 0.32708190
## color.fctrWhite
## -0.21193393
## condition.fctrFor parts or not working
## -0.63292043
## condition.fctrManufacturer refurbished
## -1.08632863
## condition.fctrNew
## -0.01650105
## condition.fctrNew other (see details)
## 0.61790117
## condition.fctrSeller refurbished
## -0.97098587
## prdl.my.fctriPad1
## -0.62392816
## prdl.my.fctriPad2
## -0.42358424
## prdl.my.fctriPad3
## 0.11128137
## prdl.my.fctriPad4
## 1.11122219
## prdl.my.fctriPadAir
## 1.26425877
## prdl.my.fctriPadAir2
## 1.68539257
## prdl.my.fctriPadmini
## -0.46016598
## prdl.my.fctriPadmini2
## 1.12225971
## prdl.my.fctriPadmini3
## 0.57317549
## spdiff.cut.fctr(-100,-10]
## 2.07964768
## spdiff.cut.fctr(-10,-1]
## 3.81319148
## spdiff.cut.fctr(-1,0]
## 4.77674081
## spdiff.cut.fctr(0,1]
## 3.83636155
## spdiff.cut.fctr(1,10]
## 4.05767976
## spdiff.cut.fctr(10,100]
## 3.52093990
## spdiff.cut.fctr(100,1e+03]
## 0.79500598
## sprice.log10
## -0.24871435
## sprice.root2
## -0.13107580
## startprice.dcm1.is9
## -0.44793939
## startprice.dcm2.is9
## -0.09182489
## startprice.dgt2.is9
## 0.12708790
## storage.fctr16
## -0.09427495
## storage.fctr64
## 0.21013131
## storage.fctrUnknown
## 1.51798214
## cellular.fctr0:carrier.fctrNone
## 0.15271915
## cellular.fctr1:carrier.fctrSprint
## 0.94816261
## cellular.fctr1:carrier.fctrT-Mobile
## -0.27551939
## cellular.fctrUnknown:carrier.fctrUnknown
## -0.67320645
## cellular.fctr1:carrier.fctrVerizon
## 0.24770066
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.81184816
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.54164033
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.32647578
## prdl.my.fctriPad4:.clusterid.fctr2
## -1.12130109
## prdl.my.fctriPadAir:.clusterid.fctr2
## -0.18773554
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.49147259
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.64952463
## prdl.my.fctriPad1:.clusterid.fctr3
## -0.89394903
## prdl.my.fctriPad4:.clusterid.fctr3
## -4.23223890
## sold.fctr sold.fctr.predict.RFE.X.glmnet.N
## 1 N 465
## 2 Y 63
## sold.fctr.predict.RFE.X.glmnet.Y
## 1 83
## 2 408
## Prediction
## Reference N Y
## N 465 83
## Y 63 408
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.567223e-01 7.126562e-01 8.336909e-01 8.776697e-01 5.377821e-01
## AccuracyPValue McnemarPValue
## 2.297444e-104 1.158460e-01
## sold.fctr sold.fctr.predict.RFE.X.glmnet.N
## 1 N 309
## 2 Y 59
## sold.fctr.predict.RFE.X.glmnet.Y
## 1 138
## 2 324
## Prediction
## Reference N Y
## N 309 138
## Y 59 324
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.626506e-01 5.294107e-01 7.322001e-01 7.912226e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 8.778953e-41 2.740269e-08
## id
## 1 RFE.X.glmnet
## feats
## 1 sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 15.47 1.59
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8606455 0.899635 0.8216561 0.9339695
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8482328 0.8259789
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8336909 0.8776697 0.6488269
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7861198 0.8255034 0.7467363 0.8728278
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7668639 0.7626506
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7322001 0.7912226 0.5294107
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01661812 0.03371297
## label step_major step_minor label_minor bgn end
## 14 fit.models_1_RFE.X 3 1 glmnet 761.101 780.998
## 15 fit.models_1_RFE.X 3 2 glm 780.999 NA
## elapsed
## 14 19.897
## 15 NA
## [1] "fitting model: RFE.X.glm"
## [1] " indep_vars: sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## + Fold1.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep1: parameter=none
## + Fold2.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep1: parameter=none
## + Fold3.Rep1: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep1: parameter=none
## + Fold1.Rep2: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep2: parameter=none
## + Fold2.Rep2: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep2: parameter=none
## + Fold3.Rep2: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep2: parameter=none
## + Fold1.Rep3: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep3: parameter=none
## + Fold2.Rep3: parameter=none
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep3: parameter=none
## + Fold3.Rep3: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep3: parameter=none
## Aggregating results
## Fitting final model on full training set
##
## Call:
## NULL
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.8799 -0.4585 -0.0827 0.3157 3.4426
##
## Coefficients: (27 not defined because of singularities)
## Estimate Std. Error z value
## (Intercept) -24.013977 30.676258 -0.783
## .rnorm -0.017879 0.105728 -0.169
## D.chrs.n.log -6.596450 4.631508 -1.424
## D.chrs.pnct11.n.log 0.698920 0.420998 1.660
## D.chrs.pnct13.n.log 0.128271 0.415461 0.309
## D.chrs.uppr.n.log 4.346752 4.277265 1.016
## D.ratio.weight.sum.wrds.n 0.275885 0.327587 0.842
## D.ratio.wrds.stop.n.wrds.n -10.401584 4.110787 -2.530
## D.terms.post.stem.n.log 23.543358 11.243156 2.094
## D.terms.post.stop.n.log -30.277170 11.186964 -2.706
## D.weight.post.stem.sum -7.805252 5.537822 -1.409
## D.weight.post.stop.sum 7.281130 5.343106 1.363
## D.weight.sum NA NA NA
## D.weight.sum.stem.stop.Ratio 35.291129 31.015916 1.138
## D.wrds.n.log 7.888557 2.574678 3.064
## D.wrds.stop.n.log 0.283965 0.704658 0.403
## D.wrds.unq.n.log NA NA NA
## biddable 2.629761 0.296958 8.856
## cellular.fctr1 -0.208558 0.362309 -0.576
## cellular.fctrUnknown -1.825518 0.622783 -2.931
## color.fctrGold 0.093777 0.723749 0.130
## `color.fctrSpace Gray` -0.321920 0.423236 -0.761
## color.fctrUnknown 0.337091 0.296849 1.136
## color.fctrWhite -0.161321 0.330277 -0.488
## `condition.fctrFor parts or not working` -0.931556 0.457754 -2.035
## `condition.fctrManufacturer refurbished` -1.303710 0.841617 -1.549
## condition.fctrNew 0.051786 0.403722 0.128
## `condition.fctrNew other (see details)` 0.653459 0.567115 1.152
## `condition.fctrSeller refurbished` -1.091504 0.475361 -2.296
## prdl.my.fctriPad1 -0.663165 0.692858 -0.957
## prdl.my.fctriPad2 -0.432151 0.611092 -0.707
## prdl.my.fctriPad3 0.212661 0.643679 0.330
## prdl.my.fctriPad4 1.449155 0.714900 2.027
## prdl.my.fctriPadAir 1.645798 0.708082 2.324
## prdl.my.fctriPadAir2 1.802258 0.785987 2.293
## prdl.my.fctriPadmini -0.631408 0.598950 -1.054
## prdl.my.fctriPadmini2 1.176938 0.736815 1.597
## prdl.my.fctriPadmini3 0.564174 0.803880 0.702
## `spdiff.cut.fctr(-100,-10]` 2.478104 0.423101 5.857
## `spdiff.cut.fctr(-10,-1]` 4.361858 0.558559 7.809
## `spdiff.cut.fctr(-1,0]` 5.453459 1.021434 5.339
## `spdiff.cut.fctr(0,1]` 4.625198 1.318591 3.508
## `spdiff.cut.fctr(1,10]` 4.774135 0.563225 8.476
## `spdiff.cut.fctr(10,100]` 4.087659 0.506483 8.071
## `spdiff.cut.fctr(100,1e+03]` 1.217015 0.802479 1.517
## sprice.d20nexp -2.326349 3.454975 -0.673
## sprice.log10 -0.882586 1.088463 -0.811
## sprice.root2 -0.055361 0.160247 -0.345
## startprice.dcm1.is9 -0.512727 0.419493 -1.222
## startprice.dcm2.is9 -0.050518 0.408619 -0.124
## startprice.dgt1.is9 -0.016859 0.297735 -0.057
## startprice.dgt2.is9 0.062159 0.327567 0.190
## storage.fctr16 -0.008848 0.743448 -0.012
## storage.fctr32 0.153876 0.754968 0.204
## storage.fctr64 0.295482 0.737683 0.401
## storage.fctrUnknown 1.900231 0.954808 1.990
## `cellular.fctr0:carrier.fctrNone` NA NA NA
## `cellular.fctr1:carrier.fctrNone` NA NA NA
## `cellular.fctrUnknown:carrier.fctrNone` NA NA NA
## `cellular.fctr0:carrier.fctrOther` NA NA NA
## `cellular.fctr1:carrier.fctrOther` NA NA NA
## `cellular.fctrUnknown:carrier.fctrOther` NA NA NA
## `cellular.fctr0:carrier.fctrSprint` NA NA NA
## `cellular.fctr1:carrier.fctrSprint` 0.931237 0.782244 1.190
## `cellular.fctrUnknown:carrier.fctrSprint` NA NA NA
## `cellular.fctr0:carrier.fctrT-Mobile` NA NA NA
## `cellular.fctr1:carrier.fctrT-Mobile` 0.028737 1.282872 0.022
## `cellular.fctrUnknown:carrier.fctrT-Mobile` NA NA NA
## `cellular.fctr0:carrier.fctrUnknown` NA NA NA
## `cellular.fctr1:carrier.fctrUnknown` -0.006309 0.617559 -0.010
## `cellular.fctrUnknown:carrier.fctrUnknown` NA NA NA
## `cellular.fctr0:carrier.fctrVerizon` NA NA NA
## `cellular.fctr1:carrier.fctrVerizon` 0.416359 0.511901 0.813
## `cellular.fctrUnknown:carrier.fctrVerizon` NA NA NA
## `prdl.my.fctrUnknown:.clusterid.fctr2` 0.606245 0.883555 0.686
## `prdl.my.fctriPad1:.clusterid.fctr2` -1.343622 0.878667 -1.529
## `prdl.my.fctriPad2:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPad3:.clusterid.fctr2` 0.067398 0.975724 0.069
## `prdl.my.fctriPad4:.clusterid.fctr2` -1.953925 1.355454 -1.442
## `prdl.my.fctriPadAir:.clusterid.fctr2` -0.334021 0.949987 -0.352
## `prdl.my.fctriPadAir2:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPadmini:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPadmini2:.clusterid.fctr2` -0.692734 1.494218 -0.464
## `prdl.my.fctriPadmini3:.clusterid.fctr2` NA NA NA
## `prdl.my.fctrUnknown:.clusterid.fctr3` -0.076400 1.280283 -0.060
## `prdl.my.fctriPad1:.clusterid.fctr3` -1.353262 0.871409 -1.553
## `prdl.my.fctriPad2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPad3:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPad4:.clusterid.fctr3` -16.522905 493.105582 -0.034
## `prdl.my.fctriPadAir:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadAir2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini3:.clusterid.fctr3` NA NA NA
## Pr(>|z|)
## (Intercept) 0.433733
## .rnorm 0.865713
## D.chrs.n.log 0.154373
## D.chrs.pnct11.n.log 0.096884 .
## D.chrs.pnct13.n.log 0.757516
## D.chrs.uppr.n.log 0.309512
## D.ratio.weight.sum.wrds.n 0.399691
## D.ratio.wrds.stop.n.wrds.n 0.011396 *
## D.terms.post.stem.n.log 0.036258 *
## D.terms.post.stop.n.log 0.006800 **
## D.weight.post.stem.sum 0.158704
## D.weight.post.stop.sum 0.172972
## D.weight.sum NA
## D.weight.sum.stem.stop.Ratio 0.255188
## D.wrds.n.log 0.002185 **
## D.wrds.stop.n.log 0.686961
## D.wrds.unq.n.log NA
## biddable < 2e-16 ***
## cellular.fctr1 0.564862
## cellular.fctrUnknown 0.003376 **
## color.fctrGold 0.896906
## `color.fctrSpace Gray` 0.446886
## color.fctrUnknown 0.256140
## color.fctrWhite 0.625236
## `condition.fctrFor parts or not working` 0.041845 *
## `condition.fctrManufacturer refurbished` 0.121369
## condition.fctrNew 0.897934
## `condition.fctrNew other (see details)` 0.249218
## `condition.fctrSeller refurbished` 0.021667 *
## prdl.my.fctriPad1 0.338494
## prdl.my.fctriPad2 0.479456
## prdl.my.fctriPad3 0.741110
## prdl.my.fctriPad4 0.042655 *
## prdl.my.fctriPadAir 0.020109 *
## prdl.my.fctriPadAir2 0.021849 *
## prdl.my.fctriPadmini 0.291796
## prdl.my.fctriPadmini2 0.110192
## prdl.my.fctriPadmini3 0.482795
## `spdiff.cut.fctr(-100,-10]` 4.71e-09 ***
## `spdiff.cut.fctr(-10,-1]` 5.76e-15 ***
## `spdiff.cut.fctr(-1,0]` 9.34e-08 ***
## `spdiff.cut.fctr(0,1]` 0.000452 ***
## `spdiff.cut.fctr(1,10]` < 2e-16 ***
## `spdiff.cut.fctr(10,100]` 6.99e-16 ***
## `spdiff.cut.fctr(100,1e+03]` 0.129375
## sprice.d20nexp 0.500735
## sprice.log10 0.417449
## sprice.root2 0.729739
## startprice.dcm1.is9 0.221611
## startprice.dcm2.is9 0.901608
## startprice.dgt1.is9 0.954845
## startprice.dgt2.is9 0.849498
## storage.fctr16 0.990505
## storage.fctr32 0.838496
## storage.fctr64 0.688748
## storage.fctrUnknown 0.046572 *
## `cellular.fctr0:carrier.fctrNone` NA
## `cellular.fctr1:carrier.fctrNone` NA
## `cellular.fctrUnknown:carrier.fctrNone` NA
## `cellular.fctr0:carrier.fctrOther` NA
## `cellular.fctr1:carrier.fctrOther` NA
## `cellular.fctrUnknown:carrier.fctrOther` NA
## `cellular.fctr0:carrier.fctrSprint` NA
## `cellular.fctr1:carrier.fctrSprint` 0.233863
## `cellular.fctrUnknown:carrier.fctrSprint` NA
## `cellular.fctr0:carrier.fctrT-Mobile` NA
## `cellular.fctr1:carrier.fctrT-Mobile` 0.982129
## `cellular.fctrUnknown:carrier.fctrT-Mobile` NA
## `cellular.fctr0:carrier.fctrUnknown` NA
## `cellular.fctr1:carrier.fctrUnknown` 0.991849
## `cellular.fctrUnknown:carrier.fctrUnknown` NA
## `cellular.fctr0:carrier.fctrVerizon` NA
## `cellular.fctr1:carrier.fctrVerizon` 0.416013
## `cellular.fctrUnknown:carrier.fctrVerizon` NA
## `prdl.my.fctrUnknown:.clusterid.fctr2` 0.492623
## `prdl.my.fctriPad1:.clusterid.fctr2` 0.126225
## `prdl.my.fctriPad2:.clusterid.fctr2` NA
## `prdl.my.fctriPad3:.clusterid.fctr2` 0.944930
## `prdl.my.fctriPad4:.clusterid.fctr2` 0.149436
## `prdl.my.fctriPadAir:.clusterid.fctr2` 0.725134
## `prdl.my.fctriPadAir2:.clusterid.fctr2` NA
## `prdl.my.fctriPadmini:.clusterid.fctr2` NA
## `prdl.my.fctriPadmini2:.clusterid.fctr2` 0.642927
## `prdl.my.fctriPadmini3:.clusterid.fctr2` NA
## `prdl.my.fctrUnknown:.clusterid.fctr3` 0.952415
## `prdl.my.fctriPad1:.clusterid.fctr3` 0.120433
## `prdl.my.fctriPad2:.clusterid.fctr3` NA
## `prdl.my.fctriPad3:.clusterid.fctr3` NA
## `prdl.my.fctriPad4:.clusterid.fctr3` 0.973270
## `prdl.my.fctriPadAir:.clusterid.fctr3` NA
## `prdl.my.fctriPadAir2:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini2:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini3:.clusterid.fctr3` NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1406.81 on 1018 degrees of freedom
## Residual deviance: 633.39 on 952 degrees of freedom
## AIC: 767.39
##
## Number of Fisher Scoring iterations: 15
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## sold.fctr sold.fctr.predict.RFE.X.glm.N sold.fctr.predict.RFE.X.glm.Y
## 1 N 469 79
## 2 Y 65 406
## Prediction
## Reference N Y
## N 469 79
## Y 65 406
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.586850e-01 7.163393e-01 8.357707e-01 8.795035e-01 5.377821e-01
## AccuracyPValue McnemarPValue
## 8.576365e-106 2.786605e-01
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## sold.fctr sold.fctr.predict.RFE.X.glm.N sold.fctr.predict.RFE.X.glm.Y
## 1 N 367 80
## 2 Y 96 287
## Prediction
## Reference N Y
## N 367 80
## Y 96 287
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.879518e-01 5.720872e-01 7.585420e-01 8.152999e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 1.092681e-50 2.581950e-01
## id
## 1 RFE.X.glm
## feats
## 1 sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 1 2.865 0.188
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.859584 0.899635 0.8195329 0.9391534
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8493724 0.8217402
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8357707 0.8795035 0.6404864
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7851882 0.8210291 0.7493473 0.8700066
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.5 0.7653333 0.7879518
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.758542 0.8152999 0.5720872
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.02794287 0.05637771
## label step_major step_minor label_minor bgn end
## 15 fit.models_1_RFE.X 3 2 glm 780.999 788.214
## 16 fit.models_1_All.X 4 0 setup 788.215 NA
## elapsed
## 15 7.216
## 16 NA
## Warning in if (grepl("^%<d-%", indep_vars)) {: the condition has length > 1
## and only the first element will be used
## label step_major step_minor label_minor bgn end
## 16 fit.models_1_All.X 4 0 setup 788.215 788.223
## 17 fit.models_1_All.X 4 1 glmnet 788.224 NA
## elapsed
## 16 0.008
## 17 NA
## [1] "fitting model: All.X.glmnet"
## [1] " indep_vars: biddable,sprice.d20nexp,spdiff.cut.fctr,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,startprice.dcm1.is9,storage.fctr,D.chrs.pnct11.n.log,D.chrs.pnct13.n.log,startprice.dgt2.is9,color.fctr,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,prdl.my.fctr,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.n.log,D.terms.post.stem.n.log,D.wrds.unq.n.log,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.log10,sprice.root2,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.1, lambda = 0.000267 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: alpha
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: lambda
## Length Class Mode
## a0 100 -none- numeric
## beta 9300 dgCMatrix S4
## df 100 -none- numeric
## dim 2 -none- numeric
## lambda 100 -none- numeric
## dev.ratio 100 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 93 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept)
## 5.9298599950
## .rnorm
## -0.0367487387
## D.chrs.n.log
## -0.2852958123
## D.chrs.pnct11.n.log
## 0.4714450805
## D.chrs.pnct13.n.log
## -0.1653784579
## D.chrs.uppr.n.log
## -0.0116026565
## D.ratio.weight.sum.wrds.n
## -0.0593199934
## D.ratio.wrds.stop.n.wrds.n
## -2.9071388332
## D.terms.post.stem.n.log
## -0.2864766681
## D.terms.post.stop.n.log
## -0.9265313808
## D.weight.post.stem.sum
## -0.1209650771
## D.weight.sum
## -0.1180951219
## D.weight.sum.stem.stop.Ratio
## -2.9013605803
## D.wrds.n.log
## 1.2607015439
## D.wrds.stop.n.log
## 0.1152103538
## D.wrds.unq.n.log
## -0.1770678274
## biddable
## 2.5343114368
## cellular.fctrUnknown
## -0.7922522457
## color.fctrGold
## 0.0871372337
## color.fctrSpace Gray
## -0.3474018561
## color.fctrUnknown
## 0.3560862355
## color.fctrWhite
## -0.2253657549
## condition.fctrFor parts or not working
## -0.7365978083
## condition.fctrManufacturer refurbished
## -1.1969859100
## condition.fctrNew
## 0.0297417566
## condition.fctrNew other (see details)
## 0.7229925582
## condition.fctrSeller refurbished
## -1.0271638293
## prdl.my.fctriPad1
## -0.6856562063
## prdl.my.fctriPad2
## -0.4622200902
## prdl.my.fctriPad3
## 0.1837795731
## prdl.my.fctriPad4
## 1.4053112779
## prdl.my.fctriPadAir
## 1.5486082406
## prdl.my.fctriPadAir2
## 1.9064724435
## prdl.my.fctriPadmini
## -0.4755225796
## prdl.my.fctriPadmini2
## 1.3324979842
## prdl.my.fctriPadmini3
## 0.7573021470
## spdiff.cut.fctr(-100,-10]
## 2.3577551693
## spdiff.cut.fctr(-10,-1]
## 4.1547129846
## spdiff.cut.fctr(-1,0]
## 5.3348860714
## spdiff.cut.fctr(0,1]
## 4.4072812301
## spdiff.cut.fctr(1,10]
## 4.4073453219
## spdiff.cut.fctr(10,100]
## 3.8533894456
## spdiff.cut.fctr(100,1e+03]
## 1.0918155713
## sprice.d20nexp
## -1.5657841541
## sprice.log10
## -0.5769819282
## sprice.root2
## -0.1085201562
## startprice.dcm1.is9
## -0.4894970169
## startprice.dcm2.is9
## -0.0838883551
## startprice.dgt1.is9
## 0.0254181773
## startprice.dgt2.is9
## 0.1157259996
## storage.fctr16
## -0.1300313626
## storage.fctr32
## 0.0005589105
## storage.fctr64
## 0.2180851783
## storage.fctrUnknown
## 1.7336441556
## cellular.fctr0:carrier.fctrNone
## 0.1706810167
## cellular.fctr1:carrier.fctrOther
## 2.6072585524
## cellular.fctr1:carrier.fctrSprint
## 1.0270604082
## cellular.fctr1:carrier.fctrT-Mobile
## -0.2821763037
## cellular.fctr1:carrier.fctrUnknown
## -0.0179172973
## cellular.fctrUnknown:carrier.fctrUnknown
## -0.7883348835
## cellular.fctr1:carrier.fctrVerizon
## 0.3156224380
## prdl.my.fctrUnknown:.clusterid.fctr2
## 0.8932344300
## prdl.my.fctriPad1:.clusterid.fctr2
## -0.7404516345
## prdl.my.fctriPad3:.clusterid.fctr2
## 0.2701330403
## prdl.my.fctriPad4:.clusterid.fctr2
## -1.4552193885
## prdl.my.fctriPadAir:.clusterid.fctr2
## -0.3279730199
## prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.6287767988
## prdl.my.fctrUnknown:.clusterid.fctr3
## -0.7598398151
## prdl.my.fctriPad1:.clusterid.fctr3
## -1.1337789530
## prdl.my.fctriPad4:.clusterid.fctr3
## -5.9466674332
## [1] "max lambda < lambdaOpt:"
## [1] "Feats mismatch between coefs_left & rght:"
## [1] "(Intercept)"
## [2] ".rnorm"
## [3] "D.chrs.n.log"
## [4] "D.chrs.pnct11.n.log"
## [5] "D.chrs.pnct13.n.log"
## [6] "D.chrs.uppr.n.log"
## [7] "D.ratio.weight.sum.wrds.n"
## [8] "D.ratio.wrds.stop.n.wrds.n"
## [9] "D.terms.post.stem.n.log"
## [10] "D.terms.post.stop.n.log"
## [11] "D.weight.post.stem.sum"
## [12] "D.weight.post.stop.sum"
## [13] "D.weight.sum"
## [14] "D.weight.sum.stem.stop.Ratio"
## [15] "D.wrds.n.log"
## [16] "D.wrds.stop.n.log"
## [17] "D.wrds.unq.n.log"
## [18] "biddable"
## [19] "cellular.fctr1"
## [20] "cellular.fctrUnknown"
## [21] "color.fctrGold"
## [22] "color.fctrSpace Gray"
## [23] "color.fctrUnknown"
## [24] "color.fctrWhite"
## [25] "condition.fctrFor parts or not working"
## [26] "condition.fctrManufacturer refurbished"
## [27] "condition.fctrNew"
## [28] "condition.fctrNew other (see details)"
## [29] "condition.fctrSeller refurbished"
## [30] "prdl.my.fctriPad1"
## [31] "prdl.my.fctriPad2"
## [32] "prdl.my.fctriPad3"
## [33] "prdl.my.fctriPad4"
## [34] "prdl.my.fctriPadAir"
## [35] "prdl.my.fctriPadAir2"
## [36] "prdl.my.fctriPadmini"
## [37] "prdl.my.fctriPadmini2"
## [38] "prdl.my.fctriPadmini3"
## [39] "spdiff.cut.fctr(-100,-10]"
## [40] "spdiff.cut.fctr(-10,-1]"
## [41] "spdiff.cut.fctr(-1,0]"
## [42] "spdiff.cut.fctr(0,1]"
## [43] "spdiff.cut.fctr(1,10]"
## [44] "spdiff.cut.fctr(10,100]"
## [45] "spdiff.cut.fctr(100,1e+03]"
## [46] "sprice.d20nexp"
## [47] "sprice.log10"
## [48] "sprice.root2"
## [49] "startprice.dcm1.is9"
## [50] "startprice.dcm2.is9"
## [51] "startprice.dgt1.is9"
## [52] "startprice.dgt2.is9"
## [53] "storage.fctr16"
## [54] "storage.fctr32"
## [55] "storage.fctr64"
## [56] "storage.fctrUnknown"
## [57] "cellular.fctr0:carrier.fctrNone"
## [58] "cellular.fctr1:carrier.fctrNone"
## [59] "cellular.fctrUnknown:carrier.fctrNone"
## [60] "cellular.fctr0:carrier.fctrOther"
## [61] "cellular.fctr1:carrier.fctrOther"
## [62] "cellular.fctrUnknown:carrier.fctrOther"
## [63] "cellular.fctr0:carrier.fctrSprint"
## [64] "cellular.fctr1:carrier.fctrSprint"
## [65] "cellular.fctrUnknown:carrier.fctrSprint"
## [66] "cellular.fctr0:carrier.fctrT-Mobile"
## [67] "cellular.fctr1:carrier.fctrT-Mobile"
## [68] "cellular.fctrUnknown:carrier.fctrT-Mobile"
## [69] "cellular.fctr0:carrier.fctrUnknown"
## [70] "cellular.fctr1:carrier.fctrUnknown"
## [71] "cellular.fctrUnknown:carrier.fctrUnknown"
## [72] "cellular.fctr0:carrier.fctrVerizon"
## [73] "cellular.fctr1:carrier.fctrVerizon"
## [74] "cellular.fctrUnknown:carrier.fctrVerizon"
## [75] "prdl.my.fctrUnknown:.clusterid.fctr2"
## [76] "prdl.my.fctriPad1:.clusterid.fctr2"
## [77] "prdl.my.fctriPad2:.clusterid.fctr2"
## [78] "prdl.my.fctriPad3:.clusterid.fctr2"
## [79] "prdl.my.fctriPad4:.clusterid.fctr2"
## [80] "prdl.my.fctriPadAir:.clusterid.fctr2"
## [81] "prdl.my.fctriPadAir2:.clusterid.fctr2"
## [82] "prdl.my.fctriPadmini:.clusterid.fctr2"
## [83] "prdl.my.fctriPadmini2:.clusterid.fctr2"
## [84] "prdl.my.fctriPadmini3:.clusterid.fctr2"
## [85] "prdl.my.fctrUnknown:.clusterid.fctr3"
## [86] "prdl.my.fctriPad1:.clusterid.fctr3"
## [87] "prdl.my.fctriPad2:.clusterid.fctr3"
## [88] "prdl.my.fctriPad3:.clusterid.fctr3"
## [89] "prdl.my.fctriPad4:.clusterid.fctr3"
## [90] "prdl.my.fctriPadAir:.clusterid.fctr3"
## [91] "prdl.my.fctriPadAir2:.clusterid.fctr3"
## [92] "prdl.my.fctriPadmini:.clusterid.fctr3"
## [93] "prdl.my.fctriPadmini2:.clusterid.fctr3"
## [94] "prdl.my.fctriPadmini3:.clusterid.fctr3"
## sold.fctr sold.fctr.predict.All.X.glmnet.N
## 1 N 467
## 2 Y 63
## sold.fctr.predict.All.X.glmnet.Y
## 1 81
## 2 409
## Prediction
## Reference N Y
## N 467 81
## Y 63 409
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.588235e-01 7.168196e-01 8.359295e-01 8.796230e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 2.677951e-106 1.565804e-01
## sold.fctr sold.fctr.predict.All.X.glmnet.N
## 1 N 309
## 2 Y 60
## sold.fctr.predict.All.X.glmnet.Y
## 1 138
## 2 323
## Prediction
## Reference N Y
## N 309 138
## Y 60 323
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 7.614458e-01 5.269348e-01 7.309494e-01 7.900724e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 2.413828e-40 4.446039e-08
## id
## 1 All.X.glmnet
## feats
## 1 biddable,sprice.d20nexp,spdiff.cut.fctr,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,startprice.dcm1.is9,storage.fctr,D.chrs.pnct11.n.log,D.chrs.pnct13.n.log,startprice.dgt2.is9,color.fctr,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,prdl.my.fctr,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.n.log,D.terms.post.stem.n.log,D.wrds.unq.n.log,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.log10,sprice.root2,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 14.39 0.515
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8626593 0.9032847 0.8220339 0.9355785
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8503119 0.8303886
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8359295 0.879623 0.6576319
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7835089 0.8255034 0.7415144 0.8721444
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.3 0.7654028 0.7614458
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7309494 0.7900724 0.5269348
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01126649 0.02276618
## label step_major step_minor label_minor bgn
## 17 fit.models_1_All.X 4 1 glmnet 788.224
## 18 fit.models_1_Best.Interact 5 0 setup 807.016
## end elapsed
## 17 807.015 18.792
## 18 NA NA
## Warning in if (grepl("^%<d-%", indep_vars)) {: the condition has length > 1
## and only the first element will be used
## label step_major step_minor label_minor bgn
## 18 fit.models_1_Best.Interact 5 0 setup 807.016
## 19 fit.models_1_CSM.X.Interact 5 1 glmnet 807.061
## end elapsed
## 18 807.06 0.044
## 19 NA NA
## [1] "fitting model: CSM.X.Interact.glmnet"
## [1] " indep_vars: .rnorm,D.weight.sum,D.weight.post.stem.sum,D.chrs.pnct13.n.log,D.ratio.weight.sum.wrds.n,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,sprice.root2,sprice.log10,startprice.dcm1.is9,D.weight.sum.stem.stop.Ratio,spdiff.cut.fctr*biddable,spdiff.cut.fctr*storage.fctr,spdiff.cut.fctr*prdl.my.fctr,spdiff.cut.fctr*cellular.fctr,spdiff.cut.fctr*D.chrs.pnct11.n.log,spdiff.cut.fctr*condition.fctr,spdiff.cut.fctr*color.fctr,spdiff.cut.fctr*sprice.d20nexp,spdiff.cut.fctr*startprice.dgt2.is9,spdiff.cut.fctr*D.wrds.n.log,spdiff.cut.fctr*D.chrs.n.log,spdiff.cut.fctr*D.chrs.uppr.n.log,spdiff.cut.fctr*D.terms.post.stem.n.log,spdiff.cut.fctr*D.terms.post.stop.n.log,spdiff.cut.fctr*D.wrds.stop.n.log,spdiff.cut.fctr*D.wrds.unq.n.log,spdiff.cut.fctr*startprice.dgt1.is9,spdiff.cut.fctr*D.weight.post.stop.sum,spdiff.cut.fctr*cellular.fctr:carrier.fctr,spdiff.cut.fctr*prdl.my.fctr:.clusterid.fctr"
## Aggregating results
## Selecting tuning parameters
## Fitting alpha = 0.1, lambda = 0.124 on full training set
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: alpha
## Warning in myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst
## = list(id.prefix = mdl_id_pfx, : model's bestTune found at an extreme of
## tuneGrid for parameter: lambda
## Length Class Mode
## a0 100 -none- numeric
## beta 61800 dgCMatrix S4
## df 100 -none- numeric
## dim 2 -none- numeric
## lambda 100 -none- numeric
## dev.ratio 100 -none- numeric
## nulldev 1 -none- numeric
## npasses 1 -none- numeric
## jerr 1 -none- numeric
## offset 1 -none- logical
## classnames 2 -none- character
## call 5 -none- call
## nobs 1 -none- numeric
## lambdaOpt 1 -none- numeric
## xNames 618 -none- character
## problemType 1 -none- character
## tuneValue 2 data.frame list
## obsLevels 2 -none- character
## [1] "min lambda > lambdaOpt:"
## (Intercept)
## 0.2003544217
## D.ratio.wrds.stop.n.wrds.n
## 0.0092867024
## D.weight.post.stem.sum
## -0.0038389521
## D.weight.sum
## -0.0038913503
## spdiff.cut.fctr(-10,-1]
## 0.3476738359
## spdiff.cut.fctr(-1,0]
## 0.4028101374
## spdiff.cut.fctr(0,1]
## 0.3335824881
## spdiff.cut.fctr(1,10]
## 0.3991130156
## spdiff.cut.fctr(10,100]
## 0.2236232117
## spdiff.cut.fctr(100,1e+03]
## -0.1334593837
## D.terms.post.stem.n.log
## -0.0032541556
## D.terms.post.stop.n.log
## -0.0046135795
## D.weight.post.stop.sum
## -0.0004194837
## D.wrds.unq.n.log
## -0.0033282182
## biddable
## 0.7973311871
## condition.fctrManufacturer refurbished
## -0.0277305643
## condition.fctrNew
## -0.0498113388
## condition.fctrSeller refurbished
## -0.1040395431
## prdl.my.fctriPad3
## 0.0337454120
## sprice.d20nexp
## 0.4178641721
## startprice.dgt1.is9
## -0.0570821468
## sprice.log10
## -0.1208220761
## sprice.root2
## -0.0479464672
## startprice.dcm1.is9
## -0.0575668655
## spdiff.cut.fctr(-1,0]:D.chrs.n.log
## 0.0103703973
## spdiff.cut.fctr(-10,-1]:D.chrs.pnct11.n.log
## 0.2532195585
## spdiff.cut.fctr(1,10]:D.chrs.pnct11.n.log
## 0.1140225926
## spdiff.cut.fctr(10,100]:D.chrs.pnct11.n.log
## 0.0009323088
## spdiff.cut.fctr(-1,0]:D.chrs.uppr.n.log
## 0.0108335319
## spdiff.cut.fctr(-1,0]:D.terms.post.stem.n.log
## 0.0181363307
## spdiff.cut.fctr(-1,0]:D.terms.post.stop.n.log
## 0.0179588166
## spdiff.cut.fctr(-1,0]:D.weight.post.stop.sum
## 0.0156246613
## spdiff.cut.fctr(-1,0]:D.wrds.n.log
## 0.0149762990
## spdiff.cut.fctr(-1,0]:D.wrds.unq.n.log
## 0.0183656990
## spdiff.cut.fctr(-100,-10]:biddable
## 0.5205095418
## spdiff.cut.fctr(-10,-1]:biddable
## 0.4560413971
## spdiff.cut.fctr(-1,0]:biddable
## 0.2859921111
## spdiff.cut.fctr(0,1]:biddable
## 0.2543775159
## spdiff.cut.fctr(1,10]:biddable
## 0.6122637313
## spdiff.cut.fctr(10,100]:biddable
## 0.8476797429
## spdiff.cut.fctr(100,1e+03]:biddable
## 0.5095000083
## spdiff.cut.fctr(-1,0]:cellular.fctr1
## 0.0189719978
## spdiff.cut.fctr(0,1]:cellular.fctr1
## 0.2039117187
## spdiff.cut.fctr(1,10]:cellular.fctr1
## 0.1130280451
## spdiff.cut.fctr(10,100]:cellular.fctr1
## 0.0857190132
## spdiff.cut.fctr(-100,-10]:cellular.fctrUnknown
## -0.0856449143
## spdiff.cut.fctr(-10,-1]:cellular.fctrUnknown
## 0.1654447531
## spdiff.cut.fctr(100,1e+03]:cellular.fctrUnknown
## -0.1166325605
## spdiff.cut.fctr(-100,-10]:color.fctrGold
## 0.0360822576
## spdiff.cut.fctr(1,10]:color.fctrGold
## 0.2816433539
## spdiff.cut.fctr(-10,-1]:color.fctrUnknown
## 0.3623011098
## spdiff.cut.fctr(-1,0]:color.fctrUnknown
## 0.0023109339
## spdiff.cut.fctr(10,100]:color.fctrUnknown
## 0.2566272345
## spdiff.cut.fctr(-100,-10]:condition.fctrNew other (see details)
## -0.0834404434
## spdiff.cut.fctr(1,10]:condition.fctrNew other (see details)
## 0.9058550869
## spdiff.cut.fctr(10,100]:condition.fctrNew other (see details)
## 0.6358847615
## spdiff.cut.fctr(100,1e+03]:condition.fctrNew other (see details)
## 0.8486980836
## spdiff.cut.fctr(-100,-10]:condition.fctrSeller refurbished
## -0.1679008442
## spdiff.cut.fctr(-10,-1]:condition.fctrSeller refurbished
## -0.3575990091
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPad1
## -0.1899625991
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPad1
## 0.0650113482
## spdiff.cut.fctr(0,1]:prdl.my.fctriPad1
## 0.3136238146
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad1
## 0.2942888705
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad2
## 0.1463508627
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad2
## -0.1636926158
## spdiff.cut.fctr(-1,0]:prdl.my.fctriPad3
## 0.0952932059
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad3
## 0.0096086251
## spdiff.cut.fctr(100,1e+03]:prdl.my.fctriPad3
## -0.4362949863
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad4
## 0.6132097901
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadAir
## 0.9042060015
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadAir
## 0.8888627557
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPadAir2
## 0.0816721294
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadAir2
## 0.4328720059
## spdiff.cut.fctr(100,1e+03]:prdl.my.fctriPadAir2
## 0.5620197169
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPadmini
## -0.0300101775
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadmini
## 0.0640500302
## spdiff.cut.fctr(1,10]:prdl.my.fctriPadmini
## 0.1896191710
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadmini
## -0.0461816988
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadmini2
## 0.4023989009
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadmini2
## 0.7081966709
## prdl.my.fctriPad4:.clusterid.fctr3
## -0.3341478694
## spdiff.cut.fctr(-100,-10]:sprice.d20nexp
## 2.5892324297
## spdiff.cut.fctr(-1,0]:sprice.d20nexp
## 0.1636370163
## spdiff.cut.fctr(0,1]:sprice.d20nexp
## 0.0443816058
## spdiff.cut.fctr(1,10]:sprice.d20nexp
## 0.0549666682
## spdiff.cut.fctr(100,1e+03]:sprice.d20nexp
## -0.0826004172
## spdiff.cut.fctr(-10,-1]:startprice.dgt1.is9
## 0.0275028792
## spdiff.cut.fctr(0,1]:startprice.dgt1.is9
## 0.0387454109
## spdiff.cut.fctr(100,1e+03]:startprice.dgt1.is9
## -0.3027875717
## spdiff.cut.fctr(-1,0]:startprice.dgt2.is9
## 0.2770374419
## spdiff.cut.fctr(0,1]:startprice.dgt2.is9
## 0.3232065866
## spdiff.cut.fctr(10,100]:startprice.dgt2.is9
## 0.0918421360
## spdiff.cut.fctr(-100,-10]:storage.fctr16
## -0.1436018666
## spdiff.cut.fctr(-10,-1]:storage.fctr16
## 0.0891435766
## spdiff.cut.fctr(-1,0]:storage.fctr16
## 0.0992412003
## spdiff.cut.fctr(0,1]:storage.fctr16
## 0.1917331476
## spdiff.cut.fctr(1,10]:storage.fctr16
## 0.2868299652
## spdiff.cut.fctr(10,100]:storage.fctr16
## 0.1306332527
## spdiff.cut.fctr(100,1e+03]:storage.fctr16
## -0.2861678033
## spdiff.cut.fctr(-10,-1]:storage.fctr32
## 0.1386303573
## spdiff.cut.fctr(-100,-10]:storage.fctr64
## 0.0481397591
## spdiff.cut.fctr(-1,0]:storage.fctr64
## 0.3273254729
## spdiff.cut.fctr(10,100]:storage.fctr64
## 0.1217352232
## spdiff.cut.fctr(-10,-1]:storage.fctrUnknown
## 0.1645376731
## spdiff.cut.fctr(100,1e+03]:storage.fctrUnknown
## -0.1385361653
## spdiff.cut.fctr(-10,-1]:cellular.fctr0:carrier.fctrNone
## 0.2181376190
## spdiff.cut.fctr(-1,0]:cellular.fctr0:carrier.fctrNone
## 0.2502845214
## spdiff.cut.fctr(1,10]:cellular.fctr0:carrier.fctrNone
## 0.2339119465
## spdiff.cut.fctr(10,100]:cellular.fctr0:carrier.fctrNone
## 0.0877674067
## spdiff.cut.fctr(-100,-10]:cellular.fctr1:carrier.fctrSprint
## 0.2293886176
## spdiff.cut.fctr(-10,-1]:cellular.fctr1:carrier.fctrT-Mobile
## 0.3763377869
## spdiff.cut.fctr(-100,-10]:cellular.fctr1:carrier.fctrUnknown
## -0.1592810564
## spdiff.cut.fctr(1,10]:cellular.fctr1:carrier.fctrUnknown
## 0.4062502805
## spdiff.cut.fctr(100,1e+03]:cellular.fctr1:carrier.fctrUnknown
## 0.3857991307
## spdiff.cut.fctr(-100,-10]:cellular.fctrUnknown:carrier.fctrUnknown
## -0.0853931291
## spdiff.cut.fctr(-10,-1]:cellular.fctrUnknown:carrier.fctrUnknown
## 0.1634169145
## spdiff.cut.fctr(100,1e+03]:cellular.fctrUnknown:carrier.fctrUnknown
## -0.1160636633
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPad1:.clusterid.fctr2
## 0.2859264548
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad1:.clusterid.fctr2
## -0.2182896101
## spdiff.cut.fctr(-1,0]:prdl.my.fctriPad3:.clusterid.fctr2
## 0.2759346233
## spdiff.cut.fctr(1,10]:prdl.my.fctriPadmini2:.clusterid.fctr2
## -0.9504442378
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadmini2:.clusterid.fctr2
## 0.0374612770
## spdiff.cut.fctr(-100,-10]:prdl.my.fctrUnknown:.clusterid.fctr3
## -0.0981376553
## spdiff.cut.fctr(1,10]:prdl.my.fctrUnknown:.clusterid.fctr3
## 0.9653155897
## spdiff.cut.fctr(100,1e+03]:prdl.my.fctrUnknown:.clusterid.fctr3
## -0.0576722654
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad1:.clusterid.fctr3
## -0.3497943623
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad1:.clusterid.fctr3
## 0.0416636823
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPad4:.clusterid.fctr3
## -0.0146569722
## [1] "max lambda < lambdaOpt:"
## (Intercept)
## 2.046418e-01
## D.ratio.wrds.stop.n.wrds.n
## 9.738408e-03
## D.weight.post.stem.sum
## -4.501123e-03
## D.weight.sum
## -4.537000e-03
## spdiff.cut.fctr(-10,-1]
## 3.628271e-01
## spdiff.cut.fctr(-1,0]
## 4.197685e-01
## spdiff.cut.fctr(0,1]
## 3.464818e-01
## spdiff.cut.fctr(1,10]
## 4.130895e-01
## spdiff.cut.fctr(10,100]
## 2.345640e-01
## spdiff.cut.fctr(100,1e+03]
## -1.434870e-01
## D.terms.post.stem.n.log
## -3.292097e-03
## D.terms.post.stop.n.log
## -4.861456e-03
## D.weight.post.stop.sum
## -7.818681e-04
## D.wrds.unq.n.log
## -3.192700e-03
## biddable
## 8.115305e-01
## condition.fctrManufacturer refurbished
## -6.123392e-02
## condition.fctrNew
## -5.295053e-02
## condition.fctrSeller refurbished
## -1.135605e-01
## prdl.my.fctriPad3
## 4.243587e-02
## sprice.d20nexp
## 4.277500e-01
## startprice.dgt1.is9
## -5.907102e-02
## sprice.log10
## -1.243793e-01
## sprice.root2
## -4.946413e-02
## startprice.dcm1.is9
## -6.894880e-02
## spdiff.cut.fctr(-1,0]:D.chrs.n.log
## 1.100557e-02
## spdiff.cut.fctr(-10,-1]:D.chrs.pnct11.n.log
## 2.837955e-01
## spdiff.cut.fctr(1,10]:D.chrs.pnct11.n.log
## 1.581887e-01
## spdiff.cut.fctr(10,100]:D.chrs.pnct11.n.log
## 4.441550e-02
## spdiff.cut.fctr(-1,0]:D.chrs.uppr.n.log
## 1.145761e-02
## spdiff.cut.fctr(-1,0]:D.terms.post.stem.n.log
## 1.926923e-02
## spdiff.cut.fctr(100,1e+03]:D.terms.post.stem.n.log
## -1.793469e-04
## spdiff.cut.fctr(-1,0]:D.terms.post.stop.n.log
## 1.900714e-02
## spdiff.cut.fctr(100,1e+03]:D.terms.post.stop.n.log
## -1.428824e-04
## spdiff.cut.fctr(-1,0]:D.weight.post.stop.sum
## 1.641529e-02
## spdiff.cut.fctr(-1,0]:D.wrds.n.log
## 1.582613e-02
## spdiff.cut.fctr(-100,-10]:D.wrds.stop.n.log
## 4.094361e-04
## spdiff.cut.fctr(-1,0]:D.wrds.unq.n.log
## 1.934223e-02
## spdiff.cut.fctr(100,1e+03]:D.wrds.unq.n.log
## -8.002001e-05
## spdiff.cut.fctr(-100,-10]:biddable
## 5.585199e-01
## spdiff.cut.fctr(-10,-1]:biddable
## 4.692244e-01
## spdiff.cut.fctr(-1,0]:biddable
## 3.018453e-01
## spdiff.cut.fctr(0,1]:biddable
## 2.658420e-01
## spdiff.cut.fctr(1,10]:biddable
## 6.396551e-01
## spdiff.cut.fctr(10,100]:biddable
## 8.812275e-01
## spdiff.cut.fctr(100,1e+03]:biddable
## 5.699894e-01
## spdiff.cut.fctr(-1,0]:cellular.fctr1
## 3.731648e-02
## spdiff.cut.fctr(0,1]:cellular.fctr1
## 2.264110e-01
## spdiff.cut.fctr(1,10]:cellular.fctr1
## 1.322853e-01
## spdiff.cut.fctr(10,100]:cellular.fctr1
## 1.044013e-01
## spdiff.cut.fctr(-100,-10]:cellular.fctrUnknown
## -9.034152e-02
## spdiff.cut.fctr(-10,-1]:cellular.fctrUnknown
## 2.057604e-01
## spdiff.cut.fctr(100,1e+03]:cellular.fctrUnknown
## -1.171880e-01
## cellular.fctr0:carrier.fctrNone
## 5.002147e-03
## spdiff.cut.fctr(-100,-10]:color.fctrGold
## 1.122160e-01
## spdiff.cut.fctr(1,10]:color.fctrGold
## 3.655952e-01
## spdiff.cut.fctr(-10,-1]:color.fctrUnknown
## 3.780944e-01
## spdiff.cut.fctr(-1,0]:color.fctrUnknown
## 3.742020e-03
## spdiff.cut.fctr(1,10]:color.fctrUnknown
## 2.045982e-03
## spdiff.cut.fctr(10,100]:color.fctrUnknown
## 2.725975e-01
## spdiff.cut.fctr(-10,-1]:condition.fctrManufacturer refurbished
## -1.526723e-03
## spdiff.cut.fctr(-100,-10]:condition.fctrNew other (see details)
## -1.110529e-01
## spdiff.cut.fctr(-10,-1]:condition.fctrNew other (see details)
## -2.928421e-02
## spdiff.cut.fctr(1,10]:condition.fctrNew other (see details)
## 9.826157e-01
## spdiff.cut.fctr(10,100]:condition.fctrNew other (see details)
## 6.948083e-01
## spdiff.cut.fctr(100,1e+03]:condition.fctrNew other (see details)
## 9.550736e-01
## spdiff.cut.fctr(-100,-10]:condition.fctrSeller refurbished
## -1.752041e-01
## spdiff.cut.fctr(-10,-1]:condition.fctrSeller refurbished
## -4.712018e-01
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPad1
## -2.157974e-01
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPad1
## 6.975783e-02
## spdiff.cut.fctr(0,1]:prdl.my.fctriPad1
## 3.509679e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad1
## 3.133797e-01
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad2
## 1.717168e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad2
## -2.022383e-01
## spdiff.cut.fctr(-1,0]:prdl.my.fctriPad3
## 1.105046e-01
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad3
## 2.662785e-02
## spdiff.cut.fctr(100,1e+03]:prdl.my.fctriPad3
## -5.636890e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad4
## 6.770895e-01
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadAir
## 9.931938e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadAir
## 9.555347e-01
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPadAir2
## 1.243546e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadAir2
## 4.751418e-01
## spdiff.cut.fctr(100,1e+03]:prdl.my.fctriPadAir2
## 5.966572e-01
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPadmini
## -4.333316e-02
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadmini
## 8.556741e-02
## spdiff.cut.fctr(1,10]:prdl.my.fctriPadmini
## 2.144010e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadmini
## -8.041997e-02
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadmini2
## 4.574266e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadmini2
## 7.549910e-01
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPadmini3
## -2.846370e-02
## prdl.my.fctriPad4:.clusterid.fctr3
## -3.571309e-01
## spdiff.cut.fctr(-100,-10]:sprice.d20nexp
## 2.879553e+00
## spdiff.cut.fctr(-1,0]:sprice.d20nexp
## 1.717869e-01
## spdiff.cut.fctr(0,1]:sprice.d20nexp
## 4.781606e-02
## spdiff.cut.fctr(1,10]:sprice.d20nexp
## 7.414976e-02
## spdiff.cut.fctr(100,1e+03]:sprice.d20nexp
## -1.011472e-01
## spdiff.cut.fctr(-10,-1]:startprice.dgt1.is9
## 4.042733e-02
## spdiff.cut.fctr(0,1]:startprice.dgt1.is9
## 6.316109e-02
## spdiff.cut.fctr(1,10]:startprice.dgt1.is9
## 5.209529e-03
## spdiff.cut.fctr(100,1e+03]:startprice.dgt1.is9
## -3.291644e-01
## spdiff.cut.fctr(-1,0]:startprice.dgt2.is9
## 3.351426e-01
## spdiff.cut.fctr(0,1]:startprice.dgt2.is9
## 3.834696e-01
## spdiff.cut.fctr(10,100]:startprice.dgt2.is9
## 9.905446e-02
## spdiff.cut.fctr(-100,-10]:storage.fctr16
## -1.444992e-01
## spdiff.cut.fctr(-10,-1]:storage.fctr16
## 9.110401e-02
## spdiff.cut.fctr(-1,0]:storage.fctr16
## 1.109884e-01
## spdiff.cut.fctr(0,1]:storage.fctr16
## 2.204076e-01
## spdiff.cut.fctr(1,10]:storage.fctr16
## 2.981404e-01
## spdiff.cut.fctr(10,100]:storage.fctr16
## 1.454966e-01
## spdiff.cut.fctr(100,1e+03]:storage.fctr16
## -3.156438e-01
## spdiff.cut.fctr(-10,-1]:storage.fctr32
## 1.599462e-01
## spdiff.cut.fctr(-100,-10]:storage.fctr64
## 7.494529e-02
## spdiff.cut.fctr(-1,0]:storage.fctr64
## 3.895672e-01
## spdiff.cut.fctr(10,100]:storage.fctr64
## 1.393288e-01
## spdiff.cut.fctr(-10,-1]:storage.fctrUnknown
## 2.059070e-01
## spdiff.cut.fctr(100,1e+03]:storage.fctrUnknown
## -1.411480e-01
## spdiff.cut.fctr(-10,-1]:cellular.fctr0:carrier.fctrNone
## 2.254737e-01
## spdiff.cut.fctr(-1,0]:cellular.fctr0:carrier.fctrNone
## 2.651200e-01
## spdiff.cut.fctr(1,10]:cellular.fctr0:carrier.fctrNone
## 2.417793e-01
## spdiff.cut.fctr(10,100]:cellular.fctr0:carrier.fctrNone
## 9.286267e-02
## spdiff.cut.fctr(100,1e+03]:cellular.fctr0:carrier.fctrNone
## -3.404189e-02
## spdiff.cut.fctr(-100,-10]:cellular.fctr1:carrier.fctrSprint
## 3.336623e-01
## spdiff.cut.fctr(-10,-1]:cellular.fctr1:carrier.fctrT-Mobile
## 4.634148e-01
## spdiff.cut.fctr(-100,-10]:cellular.fctr1:carrier.fctrUnknown
## -1.889200e-01
## spdiff.cut.fctr(1,10]:cellular.fctr1:carrier.fctrUnknown
## 4.433612e-01
## spdiff.cut.fctr(100,1e+03]:cellular.fctr1:carrier.fctrUnknown
## 4.471624e-01
## spdiff.cut.fctr(-100,-10]:cellular.fctrUnknown:carrier.fctrUnknown
## -9.014235e-02
## spdiff.cut.fctr(-10,-1]:cellular.fctrUnknown:carrier.fctrUnknown
## 2.051578e-01
## spdiff.cut.fctr(100,1e+03]:cellular.fctrUnknown:carrier.fctrUnknown
## -1.168833e-01
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPad1:.clusterid.fctr2
## 3.276400e-01
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad1:.clusterid.fctr2
## -2.976289e-01
## spdiff.cut.fctr(-1,0]:prdl.my.fctriPad3:.clusterid.fctr2
## 3.345650e-01
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPad4:.clusterid.fctr2
## 1.274939e-03
## spdiff.cut.fctr(1,10]:prdl.my.fctriPadmini2:.clusterid.fctr2
## -1.109086e+00
## spdiff.cut.fctr(10,100]:prdl.my.fctriPadmini2:.clusterid.fctr2
## 1.149500e-01
## spdiff.cut.fctr(-100,-10]:prdl.my.fctrUnknown:.clusterid.fctr3
## -1.987346e-01
## spdiff.cut.fctr(1,10]:prdl.my.fctrUnknown:.clusterid.fctr3
## 1.129566e+00
## spdiff.cut.fctr(100,1e+03]:prdl.my.fctrUnknown:.clusterid.fctr3
## -7.576486e-02
## spdiff.cut.fctr(1,10]:prdl.my.fctriPad1:.clusterid.fctr3
## -4.385553e-01
## spdiff.cut.fctr(10,100]:prdl.my.fctriPad1:.clusterid.fctr3
## 8.879799e-02
## spdiff.cut.fctr(-100,-10]:prdl.my.fctriPad4:.clusterid.fctr3
## -2.484035e-02
## spdiff.cut.fctr(-10,-1]:prdl.my.fctriPad4:.clusterid.fctr3
## -2.685868e-02
## sold.fctr sold.fctr.predict.CSM.X.Interact.glmnet.N
## 1 N 470
## 2 Y 57
## sold.fctr.predict.CSM.X.Interact.glmnet.Y
## 1 78
## 2 415
## Prediction
## Reference N Y
## N 470 78
## Y 57 415
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.676471e-01 7.346350e-01 8.452972e-01 8.878492e-01 5.372549e-01
## AccuracyPValue McnemarPValue
## 6.513110e-113 8.519170e-02
## sold.fctr sold.fctr.predict.CSM.X.Interact.glmnet.N
## 1 N 355
## 2 Y 73
## sold.fctr.predict.CSM.X.Interact.glmnet.Y
## 1 92
## 2 310
## Prediction
## Reference N Y
## N 355 92
## Y 73 310
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.012048e-01 6.014470e-01 7.724022e-01 8.278495e-01 5.385542e-01
## AccuracyPValue McnemarPValue
## 2.036127e-56 1.611249e-01
## id
## 1 CSM.X.Interact.glmnet
## feats
## 1 .rnorm,D.weight.sum,D.weight.post.stem.sum,D.chrs.pnct13.n.log,D.ratio.weight.sum.wrds.n,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,sprice.root2,sprice.log10,startprice.dcm1.is9,D.weight.sum.stem.stop.Ratio,spdiff.cut.fctr*biddable,spdiff.cut.fctr*storage.fctr,spdiff.cut.fctr*prdl.my.fctr,spdiff.cut.fctr*cellular.fctr,spdiff.cut.fctr*D.chrs.pnct11.n.log,spdiff.cut.fctr*condition.fctr,spdiff.cut.fctr*color.fctr,spdiff.cut.fctr*sprice.d20nexp,spdiff.cut.fctr*startprice.dgt2.is9,spdiff.cut.fctr*D.wrds.n.log,spdiff.cut.fctr*D.chrs.n.log,spdiff.cut.fctr*D.chrs.uppr.n.log,spdiff.cut.fctr*D.terms.post.stem.n.log,spdiff.cut.fctr*D.terms.post.stop.n.log,spdiff.cut.fctr*D.wrds.stop.n.log,spdiff.cut.fctr*D.wrds.unq.n.log,spdiff.cut.fctr*startprice.dgt1.is9,spdiff.cut.fctr*D.weight.post.stop.sum,spdiff.cut.fctr*cellular.fctr:carrier.fctr,spdiff.cut.fctr*prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 25 38.546 2.371
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8557466 0.9233577 0.7881356 0.9302201
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8601036 0.8316958
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8452972 0.8878492 0.6584576
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB max.AUCROCR.OOB
## 1 0.7820106 0.8590604 0.7049608 0.8636807
## opt.prob.threshold.OOB max.f.score.OOB max.Accuracy.OOB
## 1 0.4 0.7898089 0.8012048
## max.AccuracyLower.OOB max.AccuracyUpper.OOB max.Kappa.OOB
## 1 0.7724022 0.8278495 0.601447
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01558676 0.0323943
# Check if other preProcess methods improve model performance
mdl_id <- orderBy(get_model_sel_frmla(), glb_models_df)[1, "id"]
indep_vars_vctr <-
trim(unlist(strsplit(glb_models_df[glb_models_df$id == mdl_id, "feats"], "[,]")))
method <- tail(unlist(strsplit(mdl_id, "[.]")), 1)
mdl_id_pfx <- paste0(head(unlist(strsplit(mdl_id, "[.]")), -1), collapse=".")
if (!is.null(glbObsFitOutliers[[mdl_id_pfx]])) {
fitobs_df <- glb_fitobs_df[!(glb_fitobs_df[, glb_id_var] %in%
glbObsFitOutliers[[mdl_id_pfx]]), ]
} else fitobs_df <- glb_fitobs_df
for (prePr in glb_preproc_methods) {
# The operations are applied in this order:
# Box-Cox/Yeo-Johnson transformation, centering, scaling, range, imputation, PCA, ICA then spatial sign.
ret_lst <- myfit_mdl(mdl_specs_lst=myinit_mdl_specs_lst(mdl_specs_lst=list(
id.prefix=mdl_id_pfx,
type=glb_model_type, tune.df=glb_tune_models_df,
trainControl.method="repeatedcv",
trainControl.number=glb_rcv_n_folds,
trainControl.repeats=glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method=method, train.preProcess=prePr)),
indep_vars=indep_vars_vctr, rsp_var=glb_rsp_var,
fit_df=fitobs_df, OOB_df=glb_OOBobs_df)
}
# If (All|RFE).X.glm is less accurate than Low.Cor.X.glm
# check NA coefficients & filter appropriate terms in indep_vars_vctr
# if (method == "glm") {
# orig_glm <- glb_models_lst[[paste0(mdl_id, ".", model_method)]]$finalModel
# orig_glm <- glb_models_lst[["All.X.glm"]]$finalModel; print(summary(orig_glm))
# orig_glm <- glb_models_lst[["RFE.X.glm"]]$finalModel; print(summary(orig_glm))
# require(car)
# vif_orig_glm <- vif(orig_glm); print(vif_orig_glm)
# # if vif errors out with "there are aliased coefficients in the model"
# alias_orig_glm <- alias(orig_glm); alias_complete_orig_glm <- (alias_orig_glm$Complete > 0); alias_complete_orig_glm <- alias_complete_orig_glm[rowSums(alias_complete_orig_glm) > 0, colSums(alias_complete_orig_glm) > 0]; print(alias_complete_orig_glm)
# print(vif_orig_glm[!is.na(vif_orig_glm) & (vif_orig_glm == Inf)])
# print(which.max(vif_orig_glm))
# print(sort(vif_orig_glm[vif_orig_glm >= 1.0e+03], decreasing=TRUE))
# glb_fitobs_df[c(1143, 3637, 3953, 4105), c("UniqueID", "Popular", "H.P.quandary", "Headline")]
# glb_feats_df[glb_feats_df$id %in% grep("[HSA]\\.chrs.n.log", glb_feats_df$id, value=TRUE) | glb_feats_df$cor.high.X %in% grep("[HSA]\\.chrs.n.log", glb_feats_df$id, value=TRUE), ]
# all.equal(glb_allobs_df$S.chrs.uppr.n.log, glb_allobs_df$A.chrs.uppr.n.log)
# cor(glb_allobs_df$S.T.herald, glb_allobs_df$S.T.tribun)
# mydsp_obs(Abstract.contains="[Dd]iar", cols=("Abstract"), all=TRUE)
# subset(glb_feats_df, cor.y.abs <= glb_feats_df[glb_feats_df$id == ".rnorm", "cor.y.abs"])
# corxx_mtrx <- cor(data.matrix(glb_allobs_df[, setdiff(names(glb_allobs_df), myfind_chr_cols_df(glb_allobs_df))]), use="pairwise.complete.obs"); abs_corxx_mtrx <- abs(corxx_mtrx); diag(abs_corxx_mtrx) <- 0
# which.max(abs_corxx_mtrx["S.T.tribun", ])
# abs_corxx_mtrx["A.npnct08.log", "S.npnct08.log"]
# step_glm <- step(orig_glm)
# }
# Since caret does not optimize rpart well
# if (method == "rpart")
# ret_lst <- myfit_mdl(mdl_id=paste0(mdl_id_pfx, ".cp.0"), model_method=method,
# indep_vars_vctr=indep_vars_vctr,
# model_type=glb_model_type,
# rsp_var=glb_rsp_var, rsp_var_out=glb_rsp_var_out,
# fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df,
# n_cv_folds=0, tune_models_df=data.frame(parameter="cp", min=0.0, max=0.0, by=0.1))
# User specified
# Ensure at least 2 vars in each regression; else varImp crashes
# sav_models_lst <- glb_models_lst; sav_models_df <- glb_models_df; sav_featsimp_df <- glb_featsimp_df; all.equal(sav_featsimp_df, glb_featsimp_df)
# glb_models_lst <- sav_models_lst; glb_models_df <- sav_models_df; glm_featsimp_df <- sav_featsimp_df
# easier to exclude features
# require(gdata) # needed for trim
# mdl_id <- "";
# indep_vars_vctr <- head(subset(glb_models_df, grepl("All\\.X\\.", mdl_id), select=feats)
# , 1)[, "feats"]
# indep_vars_vctr <- trim(unlist(strsplit(indep_vars_vctr, "[,]")))
# indep_vars_vctr <- setdiff(indep_vars_vctr, ".rnorm")
# easier to include features
#stop(here"); sav_models_df <- glb_models_df; glb_models_df <- sav_models_df
# !_sp
# mdl_id <- "csm"; indep_vars_vctr <- c(NULL
# ,"prdline.my.fctr", "prdline.my.fctr:.clusterid.fctr"
# ,"prdline.my.fctr*biddable"
# #,"prdline.my.fctr*startprice.log"
# #,"prdline.my.fctr*startprice.diff"
# ,"prdline.my.fctr*condition.fctr"
# ,"prdline.my.fctr*D.terms.post.stop.n"
# #,"prdline.my.fctr*D.terms.post.stem.n"
# ,"prdline.my.fctr*cellular.fctr"
# # ,"<feat1>:<feat2>"
# )
# for (method in glbMdlMethods) {
# ret_lst <- myfit_mdl(mdl_id=mdl_id, model_method=method,
# indep_vars_vctr=indep_vars_vctr,
# model_type=glb_model_type,
# rsp_var=glb_rsp_var, rsp_var_out=glb_rsp_var_out,
# fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df,
# n_cv_folds=glb_rcv_n_folds, tune_models_df=glb_tune_models_df)
# csm_mdl_id <- paste0(mdl_id, ".", method)
# csm_featsimp_df <- myget_feats_importance(glb_models_lst[[paste0(mdl_id, ".",
# method)]]); print(head(csm_featsimp_df))
# }
###
# Ntv.1.lm <- lm(reformulate(indep_vars_vctr, glb_rsp_var), glb_trnobs_df); print(summary(Ntv.1.lm))
#glb_models_df[, "max.Accuracy.OOB", FALSE]
#varImp(glb_models_lst[["Low.cor.X.glm"]])
#orderBy(~ -Overall, varImp(glb_models_lst[["All.X.2.glm"]])$importance)
#orderBy(~ -Overall, varImp(glb_models_lst[["All.X.3.glm"]])$importance)
#glb_feats_df[grepl("npnct28", glb_feats_df$id), ]
# User specified bivariate models
# indep_vars_vctr_lst <- list()
# for (feat in setdiff(names(glb_fitobs_df),
# union(glb_rsp_var, glbFeatsExclude)))
# indep_vars_vctr_lst[["feat"]] <- feat
# User specified combinatorial models
# indep_vars_vctr_lst <- list()
# combn_mtrx <- combn(c("<feat1_name>", "<feat2_name>", "<featn_name>"),
# <num_feats_to_choose>)
# for (combn_ix in 1:ncol(combn_mtrx))
# #print(combn_mtrx[, combn_ix])
# indep_vars_vctr_lst[[combn_ix]] <- combn_mtrx[, combn_ix]
# template for myfit_mdl
# rf is hard-coded in caret to recognize only Accuracy / Kappa evaluation metrics
# only for OOB in trainControl ?
# ret_lst <- myfit_mdl_fn(mdl_id=paste0(mdl_id_pfx, ""), model_method=method,
# indep_vars_vctr=indep_vars_vctr,
# rsp_var=glb_rsp_var, rsp_var_out=glb_rsp_var_out,
# fit_df=glb_fitobs_df, OOB_df=glb_OOBobs_df,
# n_cv_folds=glb_rcv_n_folds, tune_models_df=glb_tune_models_df,
# model_loss_mtrx=glbMdlMetric_terms,
# model_summaryFunction=glbMdlMetricSummaryFn,
# model_metric=glbMdlMetricSummary,
# model_metric_maximize=glbMdlMetricMaximize)
# Simplify a model
# fit_df <- glb_fitobs_df; glb_mdl <- step(<complex>_mdl)
# Non-caret models
# rpart_area_mdl <- rpart(reformulate("Area", response=glb_rsp_var),
# data=glb_fitobs_df, #method="class",
# control=rpart.control(cp=0.12),
# parms=list(loss=glbMdlMetric_terms))
# print("rpart_sel_wlm_mdl"); prp(rpart_sel_wlm_mdl)
#
print(glb_models_df)
## id
## MFO.myMFO_classfr MFO.myMFO_classfr
## Random.myrandom_classfr Random.myrandom_classfr
## Max.cor.Y.rcv.1X1.glmnet Max.cor.Y.rcv.1X1.glmnet
## Max.cor.Y.rcv.3X1.glmnet Max.cor.Y.rcv.3X1.glmnet
## Max.cor.Y.rcv.3X3.glmnet Max.cor.Y.rcv.3X3.glmnet
## Max.cor.Y.rcv.3X5.glmnet Max.cor.Y.rcv.3X5.glmnet
## Max.cor.Y.rcv.5X1.glmnet Max.cor.Y.rcv.5X1.glmnet
## Max.cor.Y.rcv.5X3.glmnet Max.cor.Y.rcv.5X3.glmnet
## Max.cor.Y.rcv.5X5.glmnet Max.cor.Y.rcv.5X5.glmnet
## Max.cor.Y.rcv.1X1.cp.0.rpart Max.cor.Y.rcv.1X1.cp.0.rpart
## Max.cor.Y.rpart Max.cor.Y.rpart
## Interact.High.cor.Y.glmnet Interact.High.cor.Y.glmnet
## Low.cor.X.glmnet Low.cor.X.glmnet
## CSM.X.glm CSM.X.glm
## CSM.X.bayesglm CSM.X.bayesglm
## CSM.X.glmnet CSM.X.glmnet
## CSM.X.nnet CSM.X.nnet
## CSM.X.rpart CSM.X.rpart
## CSM.X.gbm CSM.X.gbm
## CSM.X.avNNet CSM.X.avNNet
## CSM.X.rf CSM.X.rf
## CSM.X.earth CSM.X.earth
## CSM.X.bagEarth CSM.X.bagEarth
## RFE.X.glmnet RFE.X.glmnet
## RFE.X.glm RFE.X.glm
## All.X.glmnet All.X.glmnet
## CSM.X.Interact.glmnet CSM.X.Interact.glmnet
## feats
## MFO.myMFO_classfr .rnorm
## Random.myrandom_classfr .rnorm
## Max.cor.Y.rcv.1X1.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.3X1.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.3X3.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.3X5.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.5X1.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.5X3.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.5X5.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.1X1.cp.0.rpart biddable,sprice.root2
## Max.cor.Y.rpart biddable,sprice.root2
## Interact.High.cor.Y.glmnet biddable,sprice.root2,biddable:sprice.log10,biddable:D.terms.post.stop.n.log,biddable:startprice.dcm2.is9,biddable:D.weight.post.stem.sum,biddable:D.chrs.n.log,biddable:cellular.fctr,biddable:D.terms.post.stem.n.log,biddable:sprice.root2
## Low.cor.X.glmnet biddable,spdiff.cut.fctr,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,storage.fctr,D.chrs.pnct11.n.log,startprice.dgt2.is9,color.fctr,prdl.my.fctr,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.root2,prdl.my.fctr:.clusterid.fctr
## CSM.X.glm spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.bayesglm spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.glmnet spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.nnet spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.rpart spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.gbm spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.avNNet spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.rf spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.earth spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.bagEarth spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## RFE.X.glmnet sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## RFE.X.glm sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## All.X.glmnet biddable,sprice.d20nexp,spdiff.cut.fctr,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,startprice.dcm1.is9,storage.fctr,D.chrs.pnct11.n.log,D.chrs.pnct13.n.log,startprice.dgt2.is9,color.fctr,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,prdl.my.fctr,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.n.log,D.terms.post.stem.n.log,D.wrds.unq.n.log,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.log10,sprice.root2,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.Interact.glmnet .rnorm,D.weight.sum,D.weight.post.stem.sum,D.chrs.pnct13.n.log,D.ratio.weight.sum.wrds.n,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,sprice.root2,sprice.log10,startprice.dcm1.is9,D.weight.sum.stem.stop.Ratio,spdiff.cut.fctr*biddable,spdiff.cut.fctr*storage.fctr,spdiff.cut.fctr*prdl.my.fctr,spdiff.cut.fctr*cellular.fctr,spdiff.cut.fctr*D.chrs.pnct11.n.log,spdiff.cut.fctr*condition.fctr,spdiff.cut.fctr*color.fctr,spdiff.cut.fctr*sprice.d20nexp,spdiff.cut.fctr*startprice.dgt2.is9,spdiff.cut.fctr*D.wrds.n.log,spdiff.cut.fctr*D.chrs.n.log,spdiff.cut.fctr*D.chrs.uppr.n.log,spdiff.cut.fctr*D.terms.post.stem.n.log,spdiff.cut.fctr*D.terms.post.stop.n.log,spdiff.cut.fctr*D.wrds.stop.n.log,spdiff.cut.fctr*D.wrds.unq.n.log,spdiff.cut.fctr*startprice.dgt1.is9,spdiff.cut.fctr*D.weight.post.stop.sum,spdiff.cut.fctr*cellular.fctr:carrier.fctr,spdiff.cut.fctr*prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything
## MFO.myMFO_classfr 0 0.288
## Random.myrandom_classfr 0 0.293
## Max.cor.Y.rcv.1X1.glmnet 0 0.958
## Max.cor.Y.rcv.3X1.glmnet 25 1.402
## Max.cor.Y.rcv.3X3.glmnet 25 1.972
## Max.cor.Y.rcv.3X5.glmnet 25 2.397
## Max.cor.Y.rcv.5X1.glmnet 25 1.708
## Max.cor.Y.rcv.5X3.glmnet 25 2.367
## Max.cor.Y.rcv.5X5.glmnet 25 2.914
## Max.cor.Y.rcv.1X1.cp.0.rpart 0 0.720
## Max.cor.Y.rpart 5 1.521
## Interact.High.cor.Y.glmnet 25 2.592
## Low.cor.X.glmnet 25 2.951
## CSM.X.glm 1 3.385
## CSM.X.bayesglm 1 5.373
## CSM.X.glmnet 25 14.047
## CSM.X.nnet 25 36.282
## CSM.X.rpart 5 3.622
## CSM.X.gbm 25 11.216
## CSM.X.avNNet 25 112.342
## CSM.X.rf 5 13.948
## CSM.X.earth 5 8.229
## CSM.X.bagEarth 1 106.994
## RFE.X.glmnet 25 15.470
## RFE.X.glm 1 2.865
## All.X.glmnet 25 14.390
## CSM.X.Interact.glmnet 25 38.546
## min.elapsedtime.final max.AUCpROC.fit
## MFO.myMFO_classfr 0.003 0.5000000
## Random.myrandom_classfr 0.002 0.4859659
## Max.cor.Y.rcv.1X1.glmnet 0.022 0.7898522
## Max.cor.Y.rcv.3X1.glmnet 0.018 0.7919708
## Max.cor.Y.rcv.3X3.glmnet 0.015 0.7919708
## Max.cor.Y.rcv.3X5.glmnet 0.014 0.7919708
## Max.cor.Y.rcv.5X1.glmnet 0.015 0.7956204
## Max.cor.Y.rcv.5X3.glmnet 0.015 0.7956204
## Max.cor.Y.rcv.5X5.glmnet 0.015 0.7963859
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.013 0.8281424
## Max.cor.Y.rpart 0.012 0.8102808
## Interact.High.cor.Y.glmnet 0.095 0.7970973
## Low.cor.X.glmnet 0.117 0.8597751
## CSM.X.glm 0.235 0.8654721
## CSM.X.bayesglm 0.408 0.8590891
## CSM.X.glmnet 0.538 0.8545310
## CSM.X.nnet 0.215 0.8654721
## CSM.X.rpart 0.078 0.8142763
## CSM.X.gbm 0.945 0.8910157
## CSM.X.avNNet 0.908 0.9110887
## CSM.X.rf 5.878 0.9990876
## CSM.X.earth 0.939 0.8328001
## CSM.X.bagEarth 52.371 0.8862983
## RFE.X.glmnet 1.590 0.8606455
## RFE.X.glm 0.188 0.8595840
## All.X.glmnet 0.515 0.8626593
## CSM.X.Interact.glmnet 2.371 0.8557466
## max.Sens.fit max.Spec.fit max.AUCROCR.fit
## MFO.myMFO_classfr 1.0000000 0.0000000 0.5000000
## Random.myrandom_classfr 0.5164234 0.4555085 0.4893217
## Max.cor.Y.rcv.1X1.glmnet 0.8339416 0.7457627 0.8620600
## Max.cor.Y.rcv.3X1.glmnet 0.8339416 0.7500000 0.8621335
## Max.cor.Y.rcv.3X3.glmnet 0.8339416 0.7500000 0.8622147
## Max.cor.Y.rcv.3X5.glmnet 0.8339416 0.7500000 0.8622069
## Max.cor.Y.rcv.5X1.glmnet 0.8412409 0.7500000 0.8621064
## Max.cor.Y.rcv.5X3.glmnet 0.8412409 0.7500000 0.8621064
## Max.cor.Y.rcv.5X5.glmnet 0.8448905 0.7478814 0.8621064
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.8978102 0.7584746 0.8816304
## Max.cor.Y.rpart 0.8959854 0.7245763 0.8387008
## Interact.High.cor.Y.glmnet 0.8886861 0.7055085 0.8639370
## Low.cor.X.glmnet 0.8996350 0.8199153 0.9329264
## CSM.X.glm 0.9032847 0.8276596 0.9415592
## CSM.X.bayesglm 0.9032847 0.8148936 0.9370632
## CSM.X.glmnet 0.9069343 0.8021277 0.9345318
## CSM.X.nnet 0.9032847 0.8276596 0.9395830
## CSM.X.rpart 0.9689781 0.6595745 0.8400159
## CSM.X.gbm 0.9416058 0.8404255 0.9666078
## CSM.X.avNNet 0.9817518 0.8404255 0.9718765
## CSM.X.rf 0.9981752 1.0000000 0.9999981
## CSM.X.earth 0.9124088 0.7531915 0.9006872
## CSM.X.bagEarth 0.9215328 0.8510638 0.9562374
## RFE.X.glmnet 0.8996350 0.8216561 0.9339695
## RFE.X.glm 0.8996350 0.8195329 0.9391534
## All.X.glmnet 0.9032847 0.8220339 0.9355785
## CSM.X.Interact.glmnet 0.9233577 0.7881356 0.9302201
## opt.prob.threshold.fit max.f.score.fit
## MFO.myMFO_classfr 0.4 0.6327078
## Random.myrandom_classfr 0.4 0.6327078
## Max.cor.Y.rcv.1X1.glmnet 0.4 0.7698745
## Max.cor.Y.rcv.3X1.glmnet 0.5 0.7720829
## Max.cor.Y.rcv.3X3.glmnet 0.5 0.7720829
## Max.cor.Y.rcv.3X5.glmnet 0.5 0.7720829
## Max.cor.Y.rcv.5X1.glmnet 0.5 0.7754655
## Max.cor.Y.rcv.5X3.glmnet 0.5 0.7754655
## Max.cor.Y.rcv.5X5.glmnet 0.5 0.7758242
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.4 0.8102109
## Max.cor.Y.rpart 0.5 0.7853042
## Interact.High.cor.Y.glmnet 0.4 0.7724750
## Low.cor.X.glmnet 0.5 0.8468271
## CSM.X.glm 0.4 0.8550420
## CSM.X.bayesglm 0.4 0.8502618
## CSM.X.glmnet 0.4 0.8484211
## CSM.X.nnet 0.4 0.8538622
## CSM.X.rpart 0.9 0.7779172
## CSM.X.gbm 0.4 0.9100418
## CSM.X.avNNet 0.3 0.9336235
## CSM.X.rf 0.5 0.9989373
## CSM.X.earth 0.4 0.8221757
## CSM.X.bagEarth 0.5 0.8762322
## RFE.X.glmnet 0.4 0.8482328
## RFE.X.glm 0.4 0.8493724
## All.X.glmnet 0.4 0.8503119
## CSM.X.Interact.glmnet 0.4 0.8601036
## max.Accuracy.fit max.AccuracyLower.fit
## MFO.myMFO_classfr 0.4627451 0.4318011
## Random.myrandom_classfr 0.4627451 0.4318011
## Max.cor.Y.rcv.1X1.glmnet 0.7843137 0.7577802
## Max.cor.Y.rcv.3X1.glmnet 0.7950911 0.7690020
## Max.cor.Y.rcv.3X3.glmnet 0.7954221 0.7690020
## Max.cor.Y.rcv.3X5.glmnet 0.7962655 0.7690020
## Max.cor.Y.rcv.5X1.glmnet 0.7990899 0.7730893
## Max.cor.Y.rcv.5X3.glmnet 0.7964364 0.7730893
## Max.cor.Y.rcv.5X5.glmnet 0.7970687 0.7741117
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.8323529 0.8079872
## Max.cor.Y.rpart 0.7964073 0.7915283
## Interact.High.cor.Y.glmnet 0.8026098 0.7730893
## Low.cor.X.glmnet 0.8349657 0.8400893
## CSM.X.glm 0.8264355 0.8418654
## CSM.X.bayesglm 0.8293912 0.8366530
## CSM.X.glmnet 0.8323381 0.8356115
## CSM.X.nnet 0.8267681 0.8397793
## CSM.X.rpart 0.8251457 0.8014236
## CSM.X.gbm 0.8323391 0.8967192
## CSM.X.avNNet 0.8313664 0.9236905
## CSM.X.rf 0.8320236 0.9945391
## CSM.X.earth 0.8241614 0.8086485
## CSM.X.bagEarth 0.8027402 0.8680742
## RFE.X.glmnet 0.8259789 0.8336909
## RFE.X.glm 0.8217402 0.8357707
## All.X.glmnet 0.8303886 0.8359295
## CSM.X.Interact.glmnet 0.8316958 0.8452972
## max.AccuracyUpper.fit max.Kappa.fit
## MFO.myMFO_classfr 0.4939047 0.0000000
## Random.myrandom_classfr 0.4939047 0.0000000
## Max.cor.Y.rcv.1X1.glmnet 0.8091950 0.5669826
## Max.cor.Y.rcv.3X1.glmnet 0.8194783 0.5860164
## Max.cor.Y.rcv.3X3.glmnet 0.8194783 0.5866808
## Max.cor.Y.rcv.3X5.glmnet 0.8194783 0.5883400
## Max.cor.Y.rcv.5X1.glmnet 0.8232111 0.5944245
## Max.cor.Y.rcv.5X3.glmnet 0.8232111 0.5888026
## Max.cor.Y.rcv.5X5.glmnet 0.8241437 0.5901123
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.8547824 0.6606905
## Max.cor.Y.rpart 0.8399619 0.5852116
## Interact.High.cor.Y.glmnet 0.8232111 0.5988972
## Low.cor.X.glmnet 0.8832827 0.6666179
## CSM.X.glm 0.8848822 0.6495141
## CSM.X.bayesglm 0.8803011 0.6549643
## CSM.X.glmnet 0.8793838 0.6607067
## CSM.X.nnet 0.8830508 0.6499515
## CSM.X.rpart 0.8489327 0.6414684
## CSM.X.gbm 0.9318742 0.6607657
## CSM.X.avNNet 0.9538584 0.6585418
## CSM.X.rf 0.9999751 0.6607791
## CSM.X.earth 0.8554193 0.6443967
## CSM.X.bagEarth 0.9076395 0.6008468
## RFE.X.glmnet 0.8776697 0.6488269
## RFE.X.glm 0.8795035 0.6404864
## All.X.glmnet 0.8796230 0.6576319
## CSM.X.Interact.glmnet 0.8878492 0.6584576
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB
## MFO.myMFO_classfr 0.5000000 1.0000000 0.0000000
## Random.myrandom_classfr 0.5064252 0.5480984 0.4647520
## Max.cor.Y.rcv.1X1.glmnet 0.7665376 0.8255034 0.7075718
## Max.cor.Y.rcv.3X1.glmnet 0.7592654 0.8187919 0.6997389
## Max.cor.Y.rcv.3X3.glmnet 0.7603840 0.8210291 0.6997389
## Max.cor.Y.rcv.3X5.glmnet 0.7603840 0.8210291 0.6997389
## Max.cor.Y.rcv.5X1.glmnet 0.7615026 0.8232662 0.6997389
## Max.cor.Y.rcv.5X3.glmnet 0.7615026 0.8232662 0.6997389
## Max.cor.Y.rcv.5X5.glmnet 0.7641135 0.8232662 0.7049608
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7504950 0.8456376 0.6553525
## Max.cor.Y.rpart 0.7445254 0.8545861 0.6344648
## Interact.High.cor.Y.glmnet 0.7551533 0.8680089 0.6422977
## Low.cor.X.glmnet 0.7801532 0.8187919 0.7415144
## CSM.X.glm 0.7836958 0.8232662 0.7441253
## CSM.X.bayesglm 0.7902203 0.8389262 0.7415144
## CSM.X.glmnet 0.7937629 0.8434004 0.7441253
## CSM.X.nnet 0.7883570 0.8299776 0.7467363
## CSM.X.rpart 0.7534652 0.9194631 0.5874674
## CSM.X.gbm 0.7573963 0.8411633 0.6736292
## CSM.X.avNNet 0.7765959 0.8926174 0.6605744
## CSM.X.rf 0.7831321 0.8456376 0.7206266
## CSM.X.earth 0.8002815 0.8903803 0.7101828
## CSM.X.bagEarth 0.8027144 0.8456376 0.7597911
## RFE.X.glmnet 0.7861198 0.8255034 0.7467363
## RFE.X.glm 0.7851882 0.8210291 0.7493473
## All.X.glmnet 0.7835089 0.8255034 0.7415144
## CSM.X.Interact.glmnet 0.7820106 0.8590604 0.7049608
## max.AUCROCR.OOB opt.prob.threshold.OOB
## MFO.myMFO_classfr 0.5000000 0.4
## Random.myrandom_classfr 0.4956046 0.4
## Max.cor.Y.rcv.1X1.glmnet 0.8197236 0.4
## Max.cor.Y.rcv.3X1.glmnet 0.8197353 0.4
## Max.cor.Y.rcv.3X3.glmnet 0.8197470 0.4
## Max.cor.Y.rcv.3X5.glmnet 0.8196593 0.4
## Max.cor.Y.rcv.5X1.glmnet 0.8195600 0.4
## Max.cor.Y.rcv.5X3.glmnet 0.8195600 0.4
## Max.cor.Y.rcv.5X5.glmnet 0.8193790 0.4
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7934621 0.3
## Max.cor.Y.rpart 0.7855854 0.3
## Interact.High.cor.Y.glmnet 0.8189000 0.3
## Low.cor.X.glmnet 0.8727052 0.3
## CSM.X.glm 0.8705557 0.5
## CSM.X.bayesglm 0.8720510 0.3
## CSM.X.glmnet 0.8713734 0.4
## CSM.X.nnet 0.8693232 0.5
## CSM.X.rpart 0.7890637 0.3
## CSM.X.gbm 0.8482836 0.3
## CSM.X.avNNet 0.8285057 0.2
## CSM.X.rf 0.8492707 0.3
## CSM.X.earth 0.8533245 0.4
## CSM.X.bagEarth 0.8751643 0.5
## RFE.X.glmnet 0.8728278 0.3
## RFE.X.glm 0.8700066 0.5
## All.X.glmnet 0.8721444 0.3
## CSM.X.Interact.glmnet 0.8636807 0.4
## max.f.score.OOB max.Accuracy.OOB
## MFO.myMFO_classfr 0.6314922 0.4614458
## Random.myrandom_classfr 0.6314922 0.4614458
## Max.cor.Y.rcv.1X1.glmnet 0.7535854 0.7722892
## Max.cor.Y.rcv.3X1.glmnet 0.7519182 0.7662651
## Max.cor.Y.rcv.3X3.glmnet 0.7525510 0.7662651
## Max.cor.Y.rcv.3X5.glmnet 0.7515924 0.7650602
## Max.cor.Y.rcv.5X1.glmnet 0.7506361 0.7638554
## Max.cor.Y.rcv.5X3.glmnet 0.7506361 0.7638554
## Max.cor.Y.rcv.5X5.glmnet 0.7512690 0.7638554
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7313997 0.7433735
## Max.cor.Y.rpart 0.7394270 0.7698795
## Interact.High.cor.Y.glmnet 0.7522698 0.7698795
## Low.cor.X.glmnet 0.7719715 0.7686747
## CSM.X.glm 0.7630522 0.7867470
## CSM.X.bayesglm 0.7705113 0.7674699
## CSM.X.glmnet 0.7735369 0.7855422
## CSM.X.nnet 0.7677852 0.7915663
## CSM.X.rpart 0.7340426 0.7590361
## CSM.X.gbm 0.7684848 0.7698795
## CSM.X.avNNet 0.7585366 0.7614458
## CSM.X.rf 0.7605295 0.7602410
## CSM.X.earth 0.7878018 0.7987952
## CSM.X.bagEarth 0.7833109 0.8060241
## RFE.X.glmnet 0.7668639 0.7626506
## RFE.X.glm 0.7653333 0.7879518
## All.X.glmnet 0.7654028 0.7614458
## CSM.X.Interact.glmnet 0.7898089 0.8012048
## max.AccuracyLower.OOB max.AccuracyUpper.OOB
## MFO.myMFO_classfr 0.4271177 0.4960486
## Random.myrandom_classfr 0.4271177 0.4960486
## Max.cor.Y.rcv.1X1.glmnet 0.7422177 0.8004125
## Max.cor.Y.rcv.3X1.glmnet 0.7359543 0.7946712
## Max.cor.Y.rcv.3X3.glmnet 0.7359543 0.7946712
## Max.cor.Y.rcv.3X5.glmnet 0.7347026 0.7935220
## Max.cor.Y.rcv.5X1.glmnet 0.7334512 0.7923725
## Max.cor.Y.rcv.5X3.glmnet 0.7334512 0.7923725
## Max.cor.Y.rcv.5X5.glmnet 0.7334512 0.7923725
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7122254 0.7727821
## Max.cor.Y.rpart 0.7397113 0.7981170
## Interact.High.cor.Y.glmnet 0.7397113 0.7981170
## Low.cor.X.glmnet 0.7384586 0.7969687
## CSM.X.glm 0.7572842 0.8141569
## CSM.X.bayesglm 0.7372063 0.7958201
## CSM.X.glmnet 0.7560267 0.8130134
## CSM.X.nnet 0.7623176 0.8187270
## CSM.X.rpart 0.7284488 0.7877710
## CSM.X.gbm 0.7397113 0.7981170
## CSM.X.avNNet 0.7309494 0.7900724
## CSM.X.rf 0.7296990 0.7889219
## CSM.X.earth 0.7698788 0.8255712
## CSM.X.bagEarth 0.7774536 0.8324015
## RFE.X.glmnet 0.7322001 0.7912226
## RFE.X.glm 0.7585420 0.8152999
## All.X.glmnet 0.7309494 0.7900724
## CSM.X.Interact.glmnet 0.7724022 0.8278495
## max.Kappa.OOB max.AccuracySD.fit
## MFO.myMFO_classfr 0.0000000 NA
## Random.myrandom_classfr 0.0000000 NA
## Max.cor.Y.rcv.1X1.glmnet 0.5419399 NA
## Max.cor.Y.rcv.3X1.glmnet 0.5311363 0.003934893
## Max.cor.Y.rcv.3X3.glmnet 0.5313109 0.020088705
## Max.cor.Y.rcv.3X5.glmnet 0.5289828 0.018120665
## Max.cor.Y.rcv.5X1.glmnet 0.5266555 0.036086436
## Max.cor.Y.rcv.5X3.glmnet 0.5266555 0.033491865
## Max.cor.Y.rcv.5X5.glmnet 0.5268317 0.031290870
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.4862697 NA
## Max.cor.Y.rpart 0.5341327 0.020068991
## Interact.High.cor.Y.glmnet 0.5374385 0.017969767
## Low.cor.X.glmnet 0.5411011 0.009378705
## CSM.X.glm 0.5694138 0.014014509
## CSM.X.bayesglm 0.5386259 0.009290129
## CSM.X.glmnet 0.5701259 0.013081889
## CSM.X.nnet 0.5789866 0.012043833
## CSM.X.rpart 0.5139178 0.011980640
## CSM.X.gbm 0.5420564 0.017270583
## CSM.X.avNNet 0.5248339 0.016598358
## CSM.X.rf 0.5234042 NA
## CSM.X.earth 0.5967662 0.012108600
## CSM.X.bagEarth 0.6080427 NA
## RFE.X.glmnet 0.5294107 0.016618124
## RFE.X.glm 0.5720872 0.027942867
## All.X.glmnet 0.5269348 0.011266493
## CSM.X.Interact.glmnet 0.6014470 0.015586760
## max.KappaSD.fit
## MFO.myMFO_classfr NA
## Random.myrandom_classfr NA
## Max.cor.Y.rcv.1X1.glmnet NA
## Max.cor.Y.rcv.3X1.glmnet 0.009324777
## Max.cor.Y.rcv.3X3.glmnet 0.040878031
## Max.cor.Y.rcv.3X5.glmnet 0.036897112
## Max.cor.Y.rcv.5X1.glmnet 0.070687264
## Max.cor.Y.rcv.5X3.glmnet 0.067292776
## Max.cor.Y.rcv.5X5.glmnet 0.062857472
## Max.cor.Y.rcv.1X1.cp.0.rpart NA
## Max.cor.Y.rpart 0.040059154
## Interact.High.cor.Y.glmnet 0.037056533
## Low.cor.X.glmnet 0.019384018
## CSM.X.glm 0.028498041
## CSM.X.bayesglm 0.019197546
## CSM.X.glmnet 0.026691421
## CSM.X.nnet 0.024508200
## CSM.X.rpart 0.024454796
## CSM.X.gbm 0.035051533
## CSM.X.avNNet 0.032652372
## CSM.X.rf NA
## CSM.X.earth 0.023852110
## CSM.X.bagEarth NA
## RFE.X.glmnet 0.033712966
## RFE.X.glm 0.056377715
## All.X.glmnet 0.022766184
## CSM.X.Interact.glmnet 0.032394299
rm(ret_lst)
fit.models_1_chunk_df <- myadd_chunk(fit.models_1_chunk_df, "fit.models_1_end",
major.inc=TRUE, label.minor="teardown")
## label step_major step_minor label_minor bgn
## 19 fit.models_1_CSM.X.Interact 5 1 glmnet 807.061
## 20 fit.models_1_end 6 0 teardown 850.463
## end elapsed
## 19 850.462 43.401
## 20 NA NA
glb_chunks_df <- myadd_chunk(glb_chunks_df, "fit.models", major.inc=FALSE)
## label step_major step_minor label_minor bgn end elapsed
## 11 fit.models 6 1 1 374.177 850.471 476.294
## 12 fit.models 6 2 2 850.472 NA NA
#stop(here"); glb_to_sav(); all.equal(glb_models_df, sav_models_df)
# if (!is.null(glbMdlMetricSummaryFn)) {
# stats_df <- glb_models_df[, "id", FALSE]
#
# stats_mdl_df <- data.frame()
# for (mdl_id in stats_df$id) {
# stats_mdl_df <- rbind(stats_mdl_df,
# mypredict_mdl(glb_models_lst[[mdl_id]], glb_fitobs_df, glb_rsp_var,
# glb_rsp_var_out, mdl_id, "fit",
# glbMdlMetricSummaryFn, glbMdlMetricSummary,
# glbMdlMetricMaximize, ret_type="stats"))
# }
# stats_df <- merge(stats_df, stats_mdl_df, all.x=TRUE)
#
# stats_mdl_df <- data.frame()
# for (mdl_id in stats_df$id) {
# stats_mdl_df <- rbind(stats_mdl_df,
# mypredict_mdl(glb_models_lst[[mdl_id]], glb_OOBobs_df, glb_rsp_var,
# glb_rsp_var_out, mdl_id, "OOB",
# glbMdlMetricSummaryFn, glbMdlMetricSummary,
# glbMdlMetricMaximize, ret_type="stats"))
# }
# stats_df <- merge(stats_df, stats_mdl_df, all.x=TRUE)
#
# print("Merging following data into glb_models_df:")
# print(stats_mrg_df <- stats_df[, c(1, grep(glbMdlMetricSummary, names(stats_df)))])
# print(tmp_models_df <- orderBy(~id, glb_models_df[, c("id",
# grep(glbMdlMetricSummary, names(stats_df), value=TRUE))]))
#
# tmp2_models_df <- glb_models_df[, c("id", setdiff(names(glb_models_df),
# grep(glbMdlMetricSummary, names(stats_df), value=TRUE)))]
# tmp3_models_df <- merge(tmp2_models_df, stats_mrg_df, all.x=TRUE, sort=FALSE)
# print(tmp3_models_df)
# print(names(tmp3_models_df))
# print(glb_models_df <- subset(tmp3_models_df, select=-id.1))
# }
plt_models_df <- glb_models_df[, -grep("SD|Upper|Lower", names(glb_models_df))]
for (var in grep("^min.", names(plt_models_df), value=TRUE)) {
plt_models_df[, sub("min.", "inv.", var)] <-
#ifelse(all(is.na(tmp <- plt_models_df[, var])), NA, 1.0 / tmp)
1.0 / plt_models_df[, var]
plt_models_df <- plt_models_df[ , -grep(var, names(plt_models_df))]
}
print(plt_models_df)
## id
## MFO.myMFO_classfr MFO.myMFO_classfr
## Random.myrandom_classfr Random.myrandom_classfr
## Max.cor.Y.rcv.1X1.glmnet Max.cor.Y.rcv.1X1.glmnet
## Max.cor.Y.rcv.3X1.glmnet Max.cor.Y.rcv.3X1.glmnet
## Max.cor.Y.rcv.3X3.glmnet Max.cor.Y.rcv.3X3.glmnet
## Max.cor.Y.rcv.3X5.glmnet Max.cor.Y.rcv.3X5.glmnet
## Max.cor.Y.rcv.5X1.glmnet Max.cor.Y.rcv.5X1.glmnet
## Max.cor.Y.rcv.5X3.glmnet Max.cor.Y.rcv.5X3.glmnet
## Max.cor.Y.rcv.5X5.glmnet Max.cor.Y.rcv.5X5.glmnet
## Max.cor.Y.rcv.1X1.cp.0.rpart Max.cor.Y.rcv.1X1.cp.0.rpart
## Max.cor.Y.rpart Max.cor.Y.rpart
## Interact.High.cor.Y.glmnet Interact.High.cor.Y.glmnet
## Low.cor.X.glmnet Low.cor.X.glmnet
## CSM.X.glm CSM.X.glm
## CSM.X.bayesglm CSM.X.bayesglm
## CSM.X.glmnet CSM.X.glmnet
## CSM.X.nnet CSM.X.nnet
## CSM.X.rpart CSM.X.rpart
## CSM.X.gbm CSM.X.gbm
## CSM.X.avNNet CSM.X.avNNet
## CSM.X.rf CSM.X.rf
## CSM.X.earth CSM.X.earth
## CSM.X.bagEarth CSM.X.bagEarth
## RFE.X.glmnet RFE.X.glmnet
## RFE.X.glm RFE.X.glm
## All.X.glmnet All.X.glmnet
## CSM.X.Interact.glmnet CSM.X.Interact.glmnet
## feats
## MFO.myMFO_classfr .rnorm
## Random.myrandom_classfr .rnorm
## Max.cor.Y.rcv.1X1.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.3X1.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.3X3.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.3X5.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.5X1.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.5X3.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.5X5.glmnet biddable,sprice.root2
## Max.cor.Y.rcv.1X1.cp.0.rpart biddable,sprice.root2
## Max.cor.Y.rpart biddable,sprice.root2
## Interact.High.cor.Y.glmnet biddable,sprice.root2,biddable:sprice.log10,biddable:D.terms.post.stop.n.log,biddable:startprice.dcm2.is9,biddable:D.weight.post.stem.sum,biddable:D.chrs.n.log,biddable:cellular.fctr,biddable:D.terms.post.stem.n.log,biddable:sprice.root2
## Low.cor.X.glmnet biddable,spdiff.cut.fctr,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,storage.fctr,D.chrs.pnct11.n.log,startprice.dgt2.is9,color.fctr,prdl.my.fctr,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.root2,prdl.my.fctr:.clusterid.fctr
## CSM.X.glm spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.bayesglm spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.glmnet spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.nnet spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.rpart spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.gbm spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.avNNet spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.rf spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.earth spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.bagEarth spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## RFE.X.glmnet sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## RFE.X.glm sprice.d20nexp,sprice.log10,sprice.root2,biddable,spdiff.cut.fctr,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,.rnorm,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## All.X.glmnet biddable,sprice.d20nexp,spdiff.cut.fctr,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,D.wrds.stop.n.log,D.weight.sum.stem.stop.Ratio,D.ratio.weight.sum.wrds.n,.rnorm,startprice.dcm1.is9,storage.fctr,D.chrs.pnct11.n.log,D.chrs.pnct13.n.log,startprice.dgt2.is9,color.fctr,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,prdl.my.fctr,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.n.log,D.terms.post.stem.n.log,D.wrds.unq.n.log,D.terms.post.stop.n.log,cellular.fctr,startprice.dgt1.is9,condition.fctr,sprice.log10,sprice.root2,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## CSM.X.Interact.glmnet .rnorm,D.weight.sum,D.weight.post.stem.sum,D.chrs.pnct13.n.log,D.ratio.weight.sum.wrds.n,D.ratio.wrds.stop.n.wrds.n,startprice.dcm2.is9,sprice.root2,sprice.log10,startprice.dcm1.is9,D.weight.sum.stem.stop.Ratio,spdiff.cut.fctr*biddable,spdiff.cut.fctr*storage.fctr,spdiff.cut.fctr*prdl.my.fctr,spdiff.cut.fctr*cellular.fctr,spdiff.cut.fctr*D.chrs.pnct11.n.log,spdiff.cut.fctr*condition.fctr,spdiff.cut.fctr*color.fctr,spdiff.cut.fctr*sprice.d20nexp,spdiff.cut.fctr*startprice.dgt2.is9,spdiff.cut.fctr*D.wrds.n.log,spdiff.cut.fctr*D.chrs.n.log,spdiff.cut.fctr*D.chrs.uppr.n.log,spdiff.cut.fctr*D.terms.post.stem.n.log,spdiff.cut.fctr*D.terms.post.stop.n.log,spdiff.cut.fctr*D.wrds.stop.n.log,spdiff.cut.fctr*D.wrds.unq.n.log,spdiff.cut.fctr*startprice.dgt1.is9,spdiff.cut.fctr*D.weight.post.stop.sum,spdiff.cut.fctr*cellular.fctr:carrier.fctr,spdiff.cut.fctr*prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns max.AUCpROC.fit max.Sens.fit
## MFO.myMFO_classfr 0 0.5000000 1.0000000
## Random.myrandom_classfr 0 0.4859659 0.5164234
## Max.cor.Y.rcv.1X1.glmnet 0 0.7898522 0.8339416
## Max.cor.Y.rcv.3X1.glmnet 25 0.7919708 0.8339416
## Max.cor.Y.rcv.3X3.glmnet 25 0.7919708 0.8339416
## Max.cor.Y.rcv.3X5.glmnet 25 0.7919708 0.8339416
## Max.cor.Y.rcv.5X1.glmnet 25 0.7956204 0.8412409
## Max.cor.Y.rcv.5X3.glmnet 25 0.7956204 0.8412409
## Max.cor.Y.rcv.5X5.glmnet 25 0.7963859 0.8448905
## Max.cor.Y.rcv.1X1.cp.0.rpart 0 0.8281424 0.8978102
## Max.cor.Y.rpart 5 0.8102808 0.8959854
## Interact.High.cor.Y.glmnet 25 0.7970973 0.8886861
## Low.cor.X.glmnet 25 0.8597751 0.8996350
## CSM.X.glm 1 0.8654721 0.9032847
## CSM.X.bayesglm 1 0.8590891 0.9032847
## CSM.X.glmnet 25 0.8545310 0.9069343
## CSM.X.nnet 25 0.8654721 0.9032847
## CSM.X.rpart 5 0.8142763 0.9689781
## CSM.X.gbm 25 0.8910157 0.9416058
## CSM.X.avNNet 25 0.9110887 0.9817518
## CSM.X.rf 5 0.9990876 0.9981752
## CSM.X.earth 5 0.8328001 0.9124088
## CSM.X.bagEarth 1 0.8862983 0.9215328
## RFE.X.glmnet 25 0.8606455 0.8996350
## RFE.X.glm 1 0.8595840 0.8996350
## All.X.glmnet 25 0.8626593 0.9032847
## CSM.X.Interact.glmnet 25 0.8557466 0.9233577
## max.Spec.fit max.AUCROCR.fit
## MFO.myMFO_classfr 0.0000000 0.5000000
## Random.myrandom_classfr 0.4555085 0.4893217
## Max.cor.Y.rcv.1X1.glmnet 0.7457627 0.8620600
## Max.cor.Y.rcv.3X1.glmnet 0.7500000 0.8621335
## Max.cor.Y.rcv.3X3.glmnet 0.7500000 0.8622147
## Max.cor.Y.rcv.3X5.glmnet 0.7500000 0.8622069
## Max.cor.Y.rcv.5X1.glmnet 0.7500000 0.8621064
## Max.cor.Y.rcv.5X3.glmnet 0.7500000 0.8621064
## Max.cor.Y.rcv.5X5.glmnet 0.7478814 0.8621064
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7584746 0.8816304
## Max.cor.Y.rpart 0.7245763 0.8387008
## Interact.High.cor.Y.glmnet 0.7055085 0.8639370
## Low.cor.X.glmnet 0.8199153 0.9329264
## CSM.X.glm 0.8276596 0.9415592
## CSM.X.bayesglm 0.8148936 0.9370632
## CSM.X.glmnet 0.8021277 0.9345318
## CSM.X.nnet 0.8276596 0.9395830
## CSM.X.rpart 0.6595745 0.8400159
## CSM.X.gbm 0.8404255 0.9666078
## CSM.X.avNNet 0.8404255 0.9718765
## CSM.X.rf 1.0000000 0.9999981
## CSM.X.earth 0.7531915 0.9006872
## CSM.X.bagEarth 0.8510638 0.9562374
## RFE.X.glmnet 0.8216561 0.9339695
## RFE.X.glm 0.8195329 0.9391534
## All.X.glmnet 0.8220339 0.9355785
## CSM.X.Interact.glmnet 0.7881356 0.9302201
## opt.prob.threshold.fit max.f.score.fit
## MFO.myMFO_classfr 0.4 0.6327078
## Random.myrandom_classfr 0.4 0.6327078
## Max.cor.Y.rcv.1X1.glmnet 0.4 0.7698745
## Max.cor.Y.rcv.3X1.glmnet 0.5 0.7720829
## Max.cor.Y.rcv.3X3.glmnet 0.5 0.7720829
## Max.cor.Y.rcv.3X5.glmnet 0.5 0.7720829
## Max.cor.Y.rcv.5X1.glmnet 0.5 0.7754655
## Max.cor.Y.rcv.5X3.glmnet 0.5 0.7754655
## Max.cor.Y.rcv.5X5.glmnet 0.5 0.7758242
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.4 0.8102109
## Max.cor.Y.rpart 0.5 0.7853042
## Interact.High.cor.Y.glmnet 0.4 0.7724750
## Low.cor.X.glmnet 0.5 0.8468271
## CSM.X.glm 0.4 0.8550420
## CSM.X.bayesglm 0.4 0.8502618
## CSM.X.glmnet 0.4 0.8484211
## CSM.X.nnet 0.4 0.8538622
## CSM.X.rpart 0.9 0.7779172
## CSM.X.gbm 0.4 0.9100418
## CSM.X.avNNet 0.3 0.9336235
## CSM.X.rf 0.5 0.9989373
## CSM.X.earth 0.4 0.8221757
## CSM.X.bagEarth 0.5 0.8762322
## RFE.X.glmnet 0.4 0.8482328
## RFE.X.glm 0.4 0.8493724
## All.X.glmnet 0.4 0.8503119
## CSM.X.Interact.glmnet 0.4 0.8601036
## max.Accuracy.fit max.Kappa.fit
## MFO.myMFO_classfr 0.4627451 0.0000000
## Random.myrandom_classfr 0.4627451 0.0000000
## Max.cor.Y.rcv.1X1.glmnet 0.7843137 0.5669826
## Max.cor.Y.rcv.3X1.glmnet 0.7950911 0.5860164
## Max.cor.Y.rcv.3X3.glmnet 0.7954221 0.5866808
## Max.cor.Y.rcv.3X5.glmnet 0.7962655 0.5883400
## Max.cor.Y.rcv.5X1.glmnet 0.7990899 0.5944245
## Max.cor.Y.rcv.5X3.glmnet 0.7964364 0.5888026
## Max.cor.Y.rcv.5X5.glmnet 0.7970687 0.5901123
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.8323529 0.6606905
## Max.cor.Y.rpart 0.7964073 0.5852116
## Interact.High.cor.Y.glmnet 0.8026098 0.5988972
## Low.cor.X.glmnet 0.8349657 0.6666179
## CSM.X.glm 0.8264355 0.6495141
## CSM.X.bayesglm 0.8293912 0.6549643
## CSM.X.glmnet 0.8323381 0.6607067
## CSM.X.nnet 0.8267681 0.6499515
## CSM.X.rpart 0.8251457 0.6414684
## CSM.X.gbm 0.8323391 0.6607657
## CSM.X.avNNet 0.8313664 0.6585418
## CSM.X.rf 0.8320236 0.6607791
## CSM.X.earth 0.8241614 0.6443967
## CSM.X.bagEarth 0.8027402 0.6008468
## RFE.X.glmnet 0.8259789 0.6488269
## RFE.X.glm 0.8217402 0.6404864
## All.X.glmnet 0.8303886 0.6576319
## CSM.X.Interact.glmnet 0.8316958 0.6584576
## max.AUCpROC.OOB max.Sens.OOB max.Spec.OOB
## MFO.myMFO_classfr 0.5000000 1.0000000 0.0000000
## Random.myrandom_classfr 0.5064252 0.5480984 0.4647520
## Max.cor.Y.rcv.1X1.glmnet 0.7665376 0.8255034 0.7075718
## Max.cor.Y.rcv.3X1.glmnet 0.7592654 0.8187919 0.6997389
## Max.cor.Y.rcv.3X3.glmnet 0.7603840 0.8210291 0.6997389
## Max.cor.Y.rcv.3X5.glmnet 0.7603840 0.8210291 0.6997389
## Max.cor.Y.rcv.5X1.glmnet 0.7615026 0.8232662 0.6997389
## Max.cor.Y.rcv.5X3.glmnet 0.7615026 0.8232662 0.6997389
## Max.cor.Y.rcv.5X5.glmnet 0.7641135 0.8232662 0.7049608
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7504950 0.8456376 0.6553525
## Max.cor.Y.rpart 0.7445254 0.8545861 0.6344648
## Interact.High.cor.Y.glmnet 0.7551533 0.8680089 0.6422977
## Low.cor.X.glmnet 0.7801532 0.8187919 0.7415144
## CSM.X.glm 0.7836958 0.8232662 0.7441253
## CSM.X.bayesglm 0.7902203 0.8389262 0.7415144
## CSM.X.glmnet 0.7937629 0.8434004 0.7441253
## CSM.X.nnet 0.7883570 0.8299776 0.7467363
## CSM.X.rpart 0.7534652 0.9194631 0.5874674
## CSM.X.gbm 0.7573963 0.8411633 0.6736292
## CSM.X.avNNet 0.7765959 0.8926174 0.6605744
## CSM.X.rf 0.7831321 0.8456376 0.7206266
## CSM.X.earth 0.8002815 0.8903803 0.7101828
## CSM.X.bagEarth 0.8027144 0.8456376 0.7597911
## RFE.X.glmnet 0.7861198 0.8255034 0.7467363
## RFE.X.glm 0.7851882 0.8210291 0.7493473
## All.X.glmnet 0.7835089 0.8255034 0.7415144
## CSM.X.Interact.glmnet 0.7820106 0.8590604 0.7049608
## max.AUCROCR.OOB opt.prob.threshold.OOB
## MFO.myMFO_classfr 0.5000000 0.4
## Random.myrandom_classfr 0.4956046 0.4
## Max.cor.Y.rcv.1X1.glmnet 0.8197236 0.4
## Max.cor.Y.rcv.3X1.glmnet 0.8197353 0.4
## Max.cor.Y.rcv.3X3.glmnet 0.8197470 0.4
## Max.cor.Y.rcv.3X5.glmnet 0.8196593 0.4
## Max.cor.Y.rcv.5X1.glmnet 0.8195600 0.4
## Max.cor.Y.rcv.5X3.glmnet 0.8195600 0.4
## Max.cor.Y.rcv.5X5.glmnet 0.8193790 0.4
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7934621 0.3
## Max.cor.Y.rpart 0.7855854 0.3
## Interact.High.cor.Y.glmnet 0.8189000 0.3
## Low.cor.X.glmnet 0.8727052 0.3
## CSM.X.glm 0.8705557 0.5
## CSM.X.bayesglm 0.8720510 0.3
## CSM.X.glmnet 0.8713734 0.4
## CSM.X.nnet 0.8693232 0.5
## CSM.X.rpart 0.7890637 0.3
## CSM.X.gbm 0.8482836 0.3
## CSM.X.avNNet 0.8285057 0.2
## CSM.X.rf 0.8492707 0.3
## CSM.X.earth 0.8533245 0.4
## CSM.X.bagEarth 0.8751643 0.5
## RFE.X.glmnet 0.8728278 0.3
## RFE.X.glm 0.8700066 0.5
## All.X.glmnet 0.8721444 0.3
## CSM.X.Interact.glmnet 0.8636807 0.4
## max.f.score.OOB max.Accuracy.OOB
## MFO.myMFO_classfr 0.6314922 0.4614458
## Random.myrandom_classfr 0.6314922 0.4614458
## Max.cor.Y.rcv.1X1.glmnet 0.7535854 0.7722892
## Max.cor.Y.rcv.3X1.glmnet 0.7519182 0.7662651
## Max.cor.Y.rcv.3X3.glmnet 0.7525510 0.7662651
## Max.cor.Y.rcv.3X5.glmnet 0.7515924 0.7650602
## Max.cor.Y.rcv.5X1.glmnet 0.7506361 0.7638554
## Max.cor.Y.rcv.5X3.glmnet 0.7506361 0.7638554
## Max.cor.Y.rcv.5X5.glmnet 0.7512690 0.7638554
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7313997 0.7433735
## Max.cor.Y.rpart 0.7394270 0.7698795
## Interact.High.cor.Y.glmnet 0.7522698 0.7698795
## Low.cor.X.glmnet 0.7719715 0.7686747
## CSM.X.glm 0.7630522 0.7867470
## CSM.X.bayesglm 0.7705113 0.7674699
## CSM.X.glmnet 0.7735369 0.7855422
## CSM.X.nnet 0.7677852 0.7915663
## CSM.X.rpart 0.7340426 0.7590361
## CSM.X.gbm 0.7684848 0.7698795
## CSM.X.avNNet 0.7585366 0.7614458
## CSM.X.rf 0.7605295 0.7602410
## CSM.X.earth 0.7878018 0.7987952
## CSM.X.bagEarth 0.7833109 0.8060241
## RFE.X.glmnet 0.7668639 0.7626506
## RFE.X.glm 0.7653333 0.7879518
## All.X.glmnet 0.7654028 0.7614458
## CSM.X.Interact.glmnet 0.7898089 0.8012048
## max.Kappa.OOB inv.elapsedtime.everything
## MFO.myMFO_classfr 0.0000000 3.472222222
## Random.myrandom_classfr 0.0000000 3.412969283
## Max.cor.Y.rcv.1X1.glmnet 0.5419399 1.043841336
## Max.cor.Y.rcv.3X1.glmnet 0.5311363 0.713266762
## Max.cor.Y.rcv.3X3.glmnet 0.5313109 0.507099391
## Max.cor.Y.rcv.3X5.glmnet 0.5289828 0.417188152
## Max.cor.Y.rcv.5X1.glmnet 0.5266555 0.585480094
## Max.cor.Y.rcv.5X3.glmnet 0.5266555 0.422475708
## Max.cor.Y.rcv.5X5.glmnet 0.5268317 0.343170899
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.4862697 1.388888889
## Max.cor.Y.rpart 0.5341327 0.657462196
## Interact.High.cor.Y.glmnet 0.5374385 0.385802469
## Low.cor.X.glmnet 0.5411011 0.338868180
## CSM.X.glm 0.5694138 0.295420975
## CSM.X.bayesglm 0.5386259 0.186115764
## CSM.X.glmnet 0.5701259 0.071189578
## CSM.X.nnet 0.5789866 0.027561876
## CSM.X.rpart 0.5139178 0.276090558
## CSM.X.gbm 0.5420564 0.089158345
## CSM.X.avNNet 0.5248339 0.008901390
## CSM.X.rf 0.5234042 0.071694867
## CSM.X.earth 0.5967662 0.121521449
## CSM.X.bagEarth 0.6080427 0.009346318
## RFE.X.glmnet 0.5294107 0.064641241
## RFE.X.glm 0.5720872 0.349040140
## All.X.glmnet 0.5269348 0.069492703
## CSM.X.Interact.glmnet 0.6014470 0.025943029
## inv.elapsedtime.final
## MFO.myMFO_classfr 333.33333333
## Random.myrandom_classfr 500.00000000
## Max.cor.Y.rcv.1X1.glmnet 45.45454545
## Max.cor.Y.rcv.3X1.glmnet 55.55555556
## Max.cor.Y.rcv.3X3.glmnet 66.66666667
## Max.cor.Y.rcv.3X5.glmnet 71.42857143
## Max.cor.Y.rcv.5X1.glmnet 66.66666667
## Max.cor.Y.rcv.5X3.glmnet 66.66666667
## Max.cor.Y.rcv.5X5.glmnet 66.66666667
## Max.cor.Y.rcv.1X1.cp.0.rpart 76.92307692
## Max.cor.Y.rpart 83.33333333
## Interact.High.cor.Y.glmnet 10.52631579
## Low.cor.X.glmnet 8.54700855
## CSM.X.glm 4.25531915
## CSM.X.bayesglm 2.45098039
## CSM.X.glmnet 1.85873606
## CSM.X.nnet 4.65116279
## CSM.X.rpart 12.82051282
## CSM.X.gbm 1.05820106
## CSM.X.avNNet 1.10132159
## CSM.X.rf 0.17012589
## CSM.X.earth 1.06496273
## CSM.X.bagEarth 0.01909454
## RFE.X.glmnet 0.62893082
## RFE.X.glm 5.31914894
## All.X.glmnet 1.94174757
## CSM.X.Interact.glmnet 0.42176297
print(myplot_radar(radar_inp_df=plt_models_df))
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Set1 is 9
## Returning the palette you asked for with that many colors
## Warning: The shape palette can deal with a maximum of 6 discrete values
## because more than 6 becomes difficult to discriminate; you have
## 27. Consider specifying shapes manually if you must have them.
## Warning: Removed 420 rows containing missing values (geom_point).
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Set1 is 9
## Returning the palette you asked for with that many colors
## Warning: The shape palette can deal with a maximum of 6 discrete values
## because more than 6 becomes difficult to discriminate; you have
## 27. Consider specifying shapes manually if you must have them.
# print(myplot_radar(radar_inp_df=subset(plt_models_df,
# !(mdl_id %in% grep("random|MFO", plt_models_df$id, value=TRUE)))))
# Compute CI for <metric>SD
glb_models_df <- mutate(glb_models_df,
max.df = ifelse(max.nTuningRuns > 1, max.nTuningRuns - 1, NA),
min.sd2ci.scaler = ifelse(is.na(max.df), NA, qt(0.975, max.df)))
for (var in grep("SD", names(glb_models_df), value=TRUE)) {
# Does CI alredy exist ?
var_components <- unlist(strsplit(var, "SD"))
varActul <- paste0(var_components[1], var_components[2])
varUpper <- paste0(var_components[1], "Upper", var_components[2])
varLower <- paste0(var_components[1], "Lower", var_components[2])
if (varUpper %in% names(glb_models_df)) {
warning(varUpper, " already exists in glb_models_df")
# Assuming Lower also exists
next
}
print(sprintf("var:%s", var))
# CI is dependent on sample size in t distribution; df=n-1
glb_models_df[, varUpper] <- glb_models_df[, varActul] +
glb_models_df[, "min.sd2ci.scaler"] * glb_models_df[, var]
glb_models_df[, varLower] <- glb_models_df[, varActul] -
glb_models_df[, "min.sd2ci.scaler"] * glb_models_df[, var]
}
## Warning: max.AccuracyUpper.fit already exists in glb_models_df
## [1] "var:max.KappaSD.fit"
# Plot metrics with CI
plt_models_df <- glb_models_df[, "id", FALSE]
pltCI_models_df <- glb_models_df[, "id", FALSE]
for (var in grep("Upper", names(glb_models_df), value=TRUE)) {
var_components <- unlist(strsplit(var, "Upper"))
col_name <- unlist(paste(var_components, collapse=""))
plt_models_df[, col_name] <- glb_models_df[, col_name]
for (name in paste0(var_components[1], c("Upper", "Lower"), var_components[2]))
pltCI_models_df[, name] <- glb_models_df[, name]
}
build_statsCI_data <- function(plt_models_df) {
mltd_models_df <- melt(plt_models_df, id.vars="id")
mltd_models_df$data <- sapply(1:nrow(mltd_models_df),
function(row_ix) tail(unlist(strsplit(as.character(
mltd_models_df[row_ix, "variable"]), "[.]")), 1))
mltd_models_df$label <- sapply(1:nrow(mltd_models_df),
function(row_ix) head(unlist(strsplit(as.character(
mltd_models_df[row_ix, "variable"]),
paste0(".", mltd_models_df[row_ix, "data"]))), 1))
#print(mltd_models_df)
return(mltd_models_df)
}
mltd_models_df <- build_statsCI_data(plt_models_df)
mltdCI_models_df <- melt(pltCI_models_df, id.vars="id")
for (row_ix in 1:nrow(mltdCI_models_df)) {
for (type in c("Upper", "Lower")) {
if (length(var_components <- unlist(strsplit(
as.character(mltdCI_models_df[row_ix, "variable"]), type))) > 1) {
#print(sprintf("row_ix:%d; type:%s; ", row_ix, type))
mltdCI_models_df[row_ix, "label"] <- var_components[1]
mltdCI_models_df[row_ix, "data"] <-
unlist(strsplit(var_components[2], "[.]"))[2]
mltdCI_models_df[row_ix, "type"] <- type
break
}
}
}
wideCI_models_df <- reshape(subset(mltdCI_models_df, select=-variable),
timevar="type",
idvar=setdiff(names(mltdCI_models_df), c("type", "value", "variable")),
direction="wide")
#print(wideCI_models_df)
mrgdCI_models_df <- merge(wideCI_models_df, mltd_models_df, all.x=TRUE)
#print(mrgdCI_models_df)
# Merge stats back in if CIs don't exist
goback_vars <- c()
for (var in unique(mltd_models_df$label)) {
for (type in unique(mltd_models_df$data)) {
var_type <- paste0(var, ".", type)
# if this data is already present, next
if (var_type %in% unique(paste(mltd_models_df$label, mltd_models_df$data,
sep=".")))
next
#print(sprintf("var_type:%s", var_type))
goback_vars <- c(goback_vars, var_type)
}
}
if (length(goback_vars) > 0) {
mltd_goback_df <- build_statsCI_data(glb_models_df[, c("id", goback_vars)])
mltd_models_df <- rbind(mltd_models_df, mltd_goback_df)
}
# mltd_models_df <- merge(mltd_models_df, glb_models_df[, c("id", "model_method")],
# all.x=TRUE)
png(paste0(glb_out_pfx, "models_bar.png"), width=480*3, height=480*2)
#print(gp <- myplot_bar(mltd_models_df, "id", "value", colorcol_name="model_method") +
print(gp <- myplot_bar(df=mltd_models_df, xcol_name="id", ycol_names="value") +
geom_errorbar(data=mrgdCI_models_df,
mapping=aes(x=mdl_id, ymax=value.Upper, ymin=value.Lower), width=0.5) +
facet_grid(label ~ data, scales="free") +
theme(axis.text.x = element_text(angle = 90,vjust = 0.5)))
## Warning: Removed 9 rows containing missing values (geom_errorbar).
dev.off()
## quartz_off_screen
## 2
print(gp)
## Warning: Removed 9 rows containing missing values (geom_errorbar).
dsp_models_cols <- c("id",
glbMdlMetricsEval[glbMdlMetricsEval %in% names(glb_models_df)],
grep("opt.", names(glb_models_df), fixed = TRUE, value = TRUE))
# if (glb_is_classification && glb_is_binomial)
# dsp_models_cols <- c(dsp_models_cols, "opt.prob.threshold.OOB")
print(dsp_models_df <- orderBy(get_model_sel_frmla(), glb_models_df)[, dsp_models_cols])
## id max.Accuracy.OOB max.AUCROCR.OOB
## 23 CSM.X.bagEarth 0.8060241 0.8751643
## 27 CSM.X.Interact.glmnet 0.8012048 0.8636807
## 22 CSM.X.earth 0.7987952 0.8533245
## 17 CSM.X.nnet 0.7915663 0.8693232
## 25 RFE.X.glm 0.7879518 0.8700066
## 14 CSM.X.glm 0.7867470 0.8705557
## 16 CSM.X.glmnet 0.7855422 0.8713734
## 3 Max.cor.Y.rcv.1X1.glmnet 0.7722892 0.8197236
## 19 CSM.X.gbm 0.7698795 0.8482836
## 12 Interact.High.cor.Y.glmnet 0.7698795 0.8189000
## 11 Max.cor.Y.rpart 0.7698795 0.7855854
## 13 Low.cor.X.glmnet 0.7686747 0.8727052
## 15 CSM.X.bayesglm 0.7674699 0.8720510
## 5 Max.cor.Y.rcv.3X3.glmnet 0.7662651 0.8197470
## 4 Max.cor.Y.rcv.3X1.glmnet 0.7662651 0.8197353
## 6 Max.cor.Y.rcv.3X5.glmnet 0.7650602 0.8196593
## 7 Max.cor.Y.rcv.5X1.glmnet 0.7638554 0.8195600
## 8 Max.cor.Y.rcv.5X3.glmnet 0.7638554 0.8195600
## 9 Max.cor.Y.rcv.5X5.glmnet 0.7638554 0.8193790
## 24 RFE.X.glmnet 0.7626506 0.8728278
## 26 All.X.glmnet 0.7614458 0.8721444
## 20 CSM.X.avNNet 0.7614458 0.8285057
## 21 CSM.X.rf 0.7602410 0.8492707
## 18 CSM.X.rpart 0.7590361 0.7890637
## 10 Max.cor.Y.rcv.1X1.cp.0.rpart 0.7433735 0.7934621
## 1 MFO.myMFO_classfr 0.4614458 0.5000000
## 2 Random.myrandom_classfr 0.4614458 0.4956046
## max.AUCpROC.OOB max.Accuracy.fit opt.prob.threshold.fit
## 23 0.8027144 0.8027402 0.5
## 27 0.7820106 0.8316958 0.4
## 22 0.8002815 0.8241614 0.4
## 17 0.7883570 0.8267681 0.4
## 25 0.7851882 0.8217402 0.4
## 14 0.7836958 0.8264355 0.4
## 16 0.7937629 0.8323381 0.4
## 3 0.7665376 0.7843137 0.4
## 19 0.7573963 0.8323391 0.4
## 12 0.7551533 0.8026098 0.4
## 11 0.7445254 0.7964073 0.5
## 13 0.7801532 0.8349657 0.5
## 15 0.7902203 0.8293912 0.4
## 5 0.7603840 0.7954221 0.5
## 4 0.7592654 0.7950911 0.5
## 6 0.7603840 0.7962655 0.5
## 7 0.7615026 0.7990899 0.5
## 8 0.7615026 0.7964364 0.5
## 9 0.7641135 0.7970687 0.5
## 24 0.7861198 0.8259789 0.4
## 26 0.7835089 0.8303886 0.4
## 20 0.7765959 0.8313664 0.3
## 21 0.7831321 0.8320236 0.5
## 18 0.7534652 0.8251457 0.9
## 10 0.7504950 0.8323529 0.4
## 1 0.5000000 0.4627451 0.4
## 2 0.5064252 0.4627451 0.4
## opt.prob.threshold.OOB
## 23 0.5
## 27 0.4
## 22 0.4
## 17 0.5
## 25 0.5
## 14 0.5
## 16 0.4
## 3 0.4
## 19 0.3
## 12 0.3
## 11 0.3
## 13 0.3
## 15 0.3
## 5 0.4
## 4 0.4
## 6 0.4
## 7 0.4
## 8 0.4
## 9 0.4
## 24 0.3
## 26 0.3
## 20 0.2
## 21 0.3
## 18 0.3
## 10 0.3
## 1 0.4
## 2 0.4
print(myplot_radar(radar_inp_df = dsp_models_df))
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Set1 is 9
## Returning the palette you asked for with that many colors
## Warning: The shape palette can deal with a maximum of 6 discrete values
## because more than 6 becomes difficult to discriminate; you have
## 27. Consider specifying shapes manually if you must have them.
## Warning: Removed 147 rows containing missing values (geom_point).
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Set1 is 9
## Returning the palette you asked for with that many colors
## Warning: The shape palette can deal with a maximum of 6 discrete values
## because more than 6 becomes difficult to discriminate; you have
## 27. Consider specifying shapes manually if you must have them.
print("Metrics used for model selection:"); print(get_model_sel_frmla())
## [1] "Metrics used for model selection:"
## ~-max.Accuracy.OOB - max.AUCROCR.OOB - max.AUCpROC.OOB - max.Accuracy.fit -
## opt.prob.threshold.OOB
## <environment: 0x7fe147620e68>
print(sprintf("Best model id: %s", dsp_models_df[1, "id"]))
## [1] "Best model id: CSM.X.bagEarth"
glb_get_predictions <- function(df, mdl_id, rsp_var_out, prob_threshold_def=NULL, verbose=FALSE) {
mdl <- glb_models_lst[[mdl_id]]
#rsp_var_out <- paste0(rsp_var_out, mdl_id)
rsp_var_out <- paste0(glb_rsp_var, ".predict.")
predct_var_name <- paste0(rsp_var_out, mdl_id)
predct_prob_var_name <- paste0(rsp_var_out, mdl_id, ".prob")
predct_accurate_var_name <- paste0(rsp_var_out, mdl_id, ".accurate")
predct_error_var_name <- paste0(rsp_var_out, mdl_id, ".err")
predct_erabs_var_name <- paste0(rsp_var_out, mdl_id, ".err.abs")
if (glb_is_regression) {
df[, predct_var_name] <- predict(mdl, newdata=df, type="raw")
if (verbose) print(myplot_scatter(df, glb_rsp_var, predct_var_name) +
facet_wrap(reformulate(glb_category_var), scales = "free") +
stat_smooth(method="glm"))
df[, predct_error_var_name] <- df[, predct_var_name] - df[, glb_rsp_var]
if (verbose) print(myplot_scatter(df, predct_var_name, predct_error_var_name) +
#facet_wrap(reformulate(glb_category_var), scales = "free") +
stat_smooth(method="auto"))
if (verbose) print(myplot_scatter(df, glb_rsp_var, predct_error_var_name) +
#facet_wrap(reformulate(glb_category_var), scales = "free") +
stat_smooth(method="glm"))
df[, predct_erabs_var_name] <- abs(df[, predct_error_var_name])
if (verbose) print(head(orderBy(reformulate(c("-", predct_erabs_var_name)), df)))
df[, predct_accurate_var_name] <- (df[, glb_rsp_var] == df[, predct_var_name])
}
if (glb_is_classification && glb_is_binomial) {
prob_threshold <- glb_models_df[glb_models_df$id == mdl_id,
"opt.prob.threshold.OOB"]
if (is.null(prob_threshold) || is.na(prob_threshold)) {
warning("Using default probability threshold: ", prob_threshold_def)
if (is.null(prob_threshold <- prob_threshold_def))
stop("Default probability threshold is NULL")
}
df[, predct_prob_var_name] <- predict(mdl, newdata = df, type = "prob")[, 2]
df[, predct_var_name] <-
factor(levels(df[, glb_rsp_var])[
(df[, predct_prob_var_name] >=
prob_threshold) * 1 + 1], levels(df[, glb_rsp_var]))
# if (verbose) print(myplot_scatter(df, glb_rsp_var, predct_var_name) +
# facet_wrap(reformulate(glb_category_var), scales = "free") +
# stat_smooth(method="glm"))
df[, predct_error_var_name] <- df[, predct_var_name] != df[, glb_rsp_var]
# if (verbose) print(myplot_scatter(df, predct_var_name, predct_error_var_name) +
# #facet_wrap(reformulate(glb_category_var), scales = "free") +
# stat_smooth(method="auto"))
# if (verbose) print(myplot_scatter(df, glb_rsp_var, predct_error_var_name) +
# #facet_wrap(reformulate(glb_category_var), scales = "free") +
# stat_smooth(method="glm"))
# if prediction is a TP (true +ve), measure distance from 1.0
tp <- which((df[, predct_var_name] == df[, glb_rsp_var]) &
(df[, predct_var_name] == levels(df[, glb_rsp_var])[2]))
df[tp, predct_erabs_var_name] <- abs(1 - df[tp, predct_prob_var_name])
#rowIx <- which.max(df[tp, predct_erabs_var_name]); df[tp, c(glb_id_var, glb_rsp_var, predct_var_name, predct_prob_var_name, predct_erabs_var_name)][rowIx, ]
# if prediction is a TN (true -ve), measure distance from 0.0
tn <- which((df[, predct_var_name] == df[, glb_rsp_var]) &
(df[, predct_var_name] == levels(df[, glb_rsp_var])[1]))
df[tn, predct_erabs_var_name] <- abs(0 - df[tn, predct_prob_var_name])
#rowIx <- which.max(df[tn, predct_erabs_var_name]); df[tn, c(glb_id_var, glb_rsp_var, predct_var_name, predct_prob_var_name, predct_erabs_var_name)][rowIx, ]
# if prediction is a FP (flse +ve), measure distance from 0.0
fp <- which((df[, predct_var_name] != df[, glb_rsp_var]) &
(df[, predct_var_name] == levels(df[, glb_rsp_var])[2]))
df[fp, predct_erabs_var_name] <- abs(0 - df[fp, predct_prob_var_name])
#rowIx <- which.max(df[fp, predct_erabs_var_name]); df[fp, c(glb_id_var, glb_rsp_var, predct_var_name, predct_prob_var_name, predct_erabs_var_name)][rowIx, ]
# if prediction is a FN (flse -ve), measure distance from 1.0
fn <- which((df[, predct_var_name] != df[, glb_rsp_var]) &
(df[, predct_var_name] == levels(df[, glb_rsp_var])[1]))
df[fn, predct_erabs_var_name] <- abs(1 - df[fn, predct_prob_var_name])
#rowIx <- which.max(df[fn, predct_erabs_var_name]); df[fn, c(glb_id_var, glb_rsp_var, predct_var_name, predct_prob_var_name, predct_erabs_var_name)][rowIx, ]
if (verbose) print(head(orderBy(reformulate(c("-", predct_erabs_var_name)), df)))
df[, predct_accurate_var_name] <- (df[, glb_rsp_var] == df[, predct_var_name])
}
if (glb_is_classification && !glb_is_binomial) {
df[, predct_var_name] <- predict(mdl, newdata = df, type = "raw")
df[, paste0(predct_var_name, ".prob")] <-
predict(mdl, newdata = df, type = "prob")
stop("Multinomial prediction error calculation needs to be implemented...")
}
return(df)
}
#stop(here"); glb_to_sav(); glb_allobs_df <- sav_allobs_df; glb_trnobs_df <- sav_trnobs_df; glb_fitobs_df <- sav_fitobs_df; glb_OOBobs_df <- sav_OOBobs_df; sav_models_df <- glb_models_df; glb_models_df <- sav_models_df; glb_featsimp_df <- sav_featsimp_df
myget_category_stats <- function(obs_df, mdl_id, label) {
require(dplyr)
require(lazyeval)
predct_var_name <- paste0(glb_rsp_var_out, mdl_id)
predct_error_var_name <- paste0(glb_rsp_var_out, mdl_id, ".err.abs")
if (!predct_var_name %in% names(obs_df))
obs_df <- glb_get_predictions(obs_df, mdl_id, glb_rsp_var_out)
tmp_obs_df <- obs_df %>%
dplyr::select_(glb_category_var, glb_rsp_var, predct_var_name, predct_error_var_name)
#dplyr::rename(startprice.log10.predict.RFE.X.glmnet.err=error_abs_OOB)
names(tmp_obs_df)[length(names(tmp_obs_df))] <- paste0("err.abs.", label)
ret_ctgry_df <- tmp_obs_df %>%
dplyr::group_by_(glb_category_var) %>%
dplyr::summarise_(#interp(~sum(abs(var)), var=as.name(glb_rsp_var)),
interp(~sum(var), var=as.name(paste0("err.abs.", label))),
interp(~mean(var), var=as.name(paste0("err.abs.", label))),
interp(~n()))
names(ret_ctgry_df) <- c(glb_category_var,
#paste0(glb_rsp_var, ".abs.", label, ".sum"),
paste0("err.abs.", label, ".sum"),
paste0("err.abs.", label, ".mean"),
paste0(".n.", label))
ret_ctgry_df <- dplyr::ungroup(ret_ctgry_df)
#colSums(ret_ctgry_df[, -grep(glb_category_var, names(ret_ctgry_df))])
return(ret_ctgry_df)
}
#print(colSums((ctgry_df <- myget_category_stats(obs_df=glb_fitobs_df, mdl_id="", label="fit"))[, -grep(glb_category_var, names(ctgry_df))]))
if (!is.null(glb_mdl_ensemble)) {
mdl_id_pfx <- "Ensemble"
if (#(glb_is_regression) |
((glb_is_classification) & (!glb_is_binomial)))
stop("Ensemble models not implemented yet for multinomial classification")
if (glb_mdl_ensemble == "auto") {
mdl_id_pfx <- paste0(mdl_id_pfx, ".auto")
tmp_models_df <- orderBy(get_model_sel_frmla(), glb_models_df)
row.names(tmp_models_df) <- tmp_models_df$id
# mdl_threshold_pos <- min(which(tmp_models_df$id %in%
# c("MFO.myMFO_classfr", "Baseline.mybaseln_classfr"))) - 1
mdl_threshold_pos <-
min(which(grepl("MFO|Random|Baseline", tmp_models_df$id))) - 1
glb_mdl_ensemble <- tmp_models_df$id[1:mdl_threshold_pos]
}
for (mdl_id in glb_mdl_ensemble) {
if (!(mdl_id %in% names(glb_models_lst))) {
warning("Model ", mdl_id, " in glb_model_ensemble not found !")
next
}
glb_fitobs_df <- glb_get_predictions(df = glb_fitobs_df, mdl_id,
glb_rsp_var_out)
glb_OOBobs_df <- glb_get_predictions(df = glb_OOBobs_df, mdl_id,
glb_rsp_var_out)
}
#mdl_id_pfx <- "Ensemble.RFE"; mdlId <- paste0(mdl_id_pfx, ".glmnet")
#glb_mdl_ensemble <- gsub(glb_rsp_var_out, "", grep("RFE\\.X\\.(?!Interact)", row.names(glb_featsimp_df), perl = TRUE, value = TRUE), fixed = TRUE)
#varImp(glb_models_lst[[mdlId]])
#cor_df <- data.frame(cor=cor(glb_fitobs_df[, glb_rsp_var], glb_fitobs_df[, paste(glb_rsp_var_out, glb_mdl_ensemble)], use="pairwise.complete.obs"))
#glb_fitobs_df <- glb_get_predictions(df=glb_fitobs_df, "Ensemble.glmnet", glb_rsp_var_out);print(colSums((ctgry_df <- myget_category_stats(obs_df=glb_fitobs_df, mdl_id="Ensemble.glmnet", label="fit"))[, -grep(glb_category_var, names(ctgry_df))]))
### bid0_sp
# Better than MFO; models.n=28; min.RMSE.fit=0.0521233; err.abs.fit.sum=7.3631895
# old: Top x from auto; models.n= 5; min.RMSE.fit=0.06311047; err.abs.fit.sum=9.5937080
# RFE only ; models.n=16; min.RMSE.fit=0.05148588; err.abs.fit.sum=7.2875091
# RFE subset only ;models.n= 5; min.RMSE.fit=0.06040702; err.abs.fit.sum=9.059088
# RFE subset only ;models.n= 9; min.RMSE.fit=0.05933167; err.abs.fit.sum=8.7421288
# RFE subset only ;models.n=15; min.RMSE.fit=0.0584607; err.abs.fit.sum=8.5902066
# RFE subset only ;models.n=17; min.RMSE.fit=0.05496899; err.abs.fit.sum=8.0170431
# RFE subset only ;models.n=18; min.RMSE.fit=0.05441577; err.abs.fit.sum=7.837223
# RFE subset only ;models.n=16; min.RMSE.fit=0.05441577; err.abs.fit.sum=7.837223
### bid0_sp
### bid1_sp
# "auto"; err.abs.fit.sum=76.699774; min.RMSE.fit=0.2186429
# "RFE.X.*"; err.abs.fit.sum=; min.RMSE.fit=0.221114
### bid1_sp
indep_vars <- paste(glb_rsp_var_out, glb_mdl_ensemble, sep = "")
if (glb_is_classification)
indep_vars <- paste(indep_vars, ".prob", sep = "")
# Some models in glb_mdl_ensemble might not be fitted e.g. RFE.X.Interact
indep_vars <- intersect(indep_vars, names(glb_fitobs_df))
# indep_vars <- grep(glb_rsp_var_out, names(glb_fitobs_df), fixed=TRUE, value=TRUE)
# if (glb_is_regression)
# indep_vars <- indep_vars[!grepl("(err\\.abs|accurate)$", indep_vars)]
# if (glb_is_classification && glb_is_binomial)
# indep_vars <- grep("prob$", indep_vars, value=TRUE) else
# indep_vars <- indep_vars[!grepl("err$", indep_vars)]
#rfe_fit_ens_results <- myrun_rfe(glb_fitobs_df, indep_vars)
for (method in c("glm", "glmnet")) {
for (trainControlMethod in
c("boot", "boot632", "cv", "repeatedcv"
#, "LOOCV" # tuneLength * nrow(fitDF)
, "LGOCV", "adaptive_cv"
#, "adaptive_boot" #error: adaptive$min should be less than 3
#, "adaptive_LGOCV" #error: adaptive$min should be less than 3
)) {
#sav_models_df <- glb_models_df; all.equal(sav_models_df, glb_models_df)
#glb_models_df <- sav_models_df; print(glb_models_df$id)
if ((method == "glm") && (trainControlMethod != "repeatedcv"))
# glm used only to identify outliers
next
ret_lst <- myfit_mdl(
mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = paste0(mdl_id_pfx, ".", trainControlMethod),
type = glb_model_type, tune.df = NULL,
trainControl.method = trainControlMethod,
trainControl.number = glb_rcv_n_folds,
trainControl.repeats = glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method = method)),
indep_vars = indep_vars, rsp_var = glb_rsp_var,
fit_df = glb_fitobs_df, OOB_df = glb_OOBobs_df)
}
}
dsp_models_df <- get_dsp_models_df()
}
if (is.null(glb_sel_mdl_id))
glb_sel_mdl_id <- dsp_models_df[1, "id"] else
print(sprintf("User specified selection: %s", glb_sel_mdl_id))
myprint_mdl(glb_sel_mdl <- glb_models_lst[[glb_sel_mdl_id]])
##
## Call:
## bagEarth.default(x = structure(c(3.91202300542815, 4.61512051684126, 0, 4.61512051684126, 0, 0, 0, 0, 4.58496747867057, 4.59511985013459, 4.61512051684126, 4.61512051684126, 0, 4.44265125649032, 0, 4.53259949315326, 4.62497281328427, 4.57471097850338, 4.59511985013459, 4.61512051684126, 4.34380542185368, 0, 0, 4.62497281328427, 0, 2.70805020110221, 0, 0, 4.61512051684126, 4.57471097850338, 4.38202663467388, 0, 0, 0, 0, 4.61512051684126, 4.61512051684126, 0, 0, 4.62497281328427, 4.59511985013459, 0, 4.54329478227, 4.59511985013459, 0, 0, 0, 0, 0, 0, 4.54329478227, 0, 0, 0, 4.57471097850338, 4.46590811865458, 0, 3.52636052461616, 0, 4.56434819146784, 0, 4.54329478227, 0, 0, 0, 4.59511985013459, 4.55387689160054, 0, 3.04452243772342, 0, 0, 0, 0, 4.59511985013459, 0, 0, 3.04452243772342, 0, 0, 4.55387689160054, 0, 4.11087386417331, 0, 4.52178857704904, 0, 4.62497281328427, 0, 0, 4.56434819146784, 4.20469261939097, 3.66356164612965, 0, 0, 4.57471097850338, 4.56434819146784, 0, 4.54329478227, 3.52636052461616, 0, 3.68887945411394, 4.61512051684126, 0, 4.02535169073515, 0, 0, 4.64439089914137, 0, 0, 0, 0, 0, 0, 0, 4.60517018598809, 0, 4.47733681447821, 0, 3.85014760171006, 0, 4.59511985013459, 4.54329478227, 0, 0, 0, 0, 4.52178857704904, 0, 4.62497281328427, 0, 4.61512051684126, 3.25809653802148, 0, 4.59511985013459, 0, 0, 4.59511985013459, 0, 0, 4.30406509320417, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 4.62497281328427, 0, 0, 0, 0, 4.56434819146784, 0, 0, 0, 0, 0, 4.56434819146784, 0, 4.62497281328427, 2.484906649788, 0, 0, 0, 0, 3.63758615972639, 0, 0, 0, 0, 0, 3.61091791264422, 3.43398720448515, 0, 0, 0, 0, 0, 4.60517018598809, 0, 0, 0, 0, 3.91202300542815, 4.56434819146784, 4.55387689160054, 4.23410650459726, 0, 4.62497281328427, 0, 0, 4.61512051684126, 3.29583686600433, 0, 4.56434819146784, 0, 2.77258872223978, 0, 0, 0, 4.62497281328427, 3.55534806148941, 0, 0, 0, 4.61512051684126, 4.59511985013459, 0, 0, 0, 0, 3.04452243772342, 0, 0, 0, 4.61512051684126, 0, 4.58496747867057, 3.52636052461616, 0, 4.61512051684126, 0, 0, 4.62497281328427, 0, 3.93182563272433, 0, 0, 0, 0, 0, 0, 4.06044301054642, 0, 0, 0, 0, 4.0943445622221, 2.39789527279837, 0, 0, 0, 0, 4.61512051684126, 0, 0, 4.62497281328427, 0, 4.56434819146784, 3.49650756146648, 0, 0, 4.58496747867057, 0, 4.59511985013459, 4.11087386417331, 3.73766961828337, 0, 0, 0, 0, 3.04452243772342, 0, 4.61512051684126, 4.62497281328427, 0, 4.59511985013459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.61512051684126, 4.52178857704904, 0, 0, 0, 0, 0, 0, 0, 0, 4.58496747867057, 4.60517018598809, 0, 0, 0, 4.46590811865458, 0, 3.93182563272433, 4.58496747867057, 0, 4.58496747867057, 2.99573227355399, 0, 4.24849524204936, 3.09104245335832, 3.52636052461616, 0, 3.29583686600433, 0, 4.55387689160054, 0, 0, 0, 4.4188406077966, 0, 4.00733318523247, 0, 0, 4.60517018598809, 4.52178857704904, 0, 0, 0, 3.80666248977032, 4.51085950651685, 4.21950770517611, 0, 4.60517018598809, 0, 0, 4.60517018598809, 4.60517018598809, 0, 4.00733318523247, 0, 4.60517018598809, 0, 4.47733681447821, 4.4188406077966, 0, 4.62497281328427, 0, 0, 0, 4.60517018598809, 3.98898404656427, 0, 0, 0, 0, 4.58496747867057, 0, 3.29583686600433, 0, 4.49980967033027, 0, 0, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 4.60517018598809, 4.58496747867057, 0, 0, 3.97029191355212, 3.25809653802148, 0, 4.58496747867057, 4.62497281328427, 3.80666248977032, 0, 3.80666248977032, 0, 0, 4.58496747867057, 4.61512051684126, 4.62497281328427, 0, 4.59511985013459, 0, 0, 4.55387689160054, 4.62497281328427, 4.52178857704904, 4.38202663467388, 4.60517018598809, 3.85014760171006, 0, 4.54329478227, 4.59511985013459, 4.52178857704904, 0, 0, 4.60517018598809, 4.04305126783455, 0, 3.73766961828337, 4.59511985013459, 0, 0, 4.54329478227, 0, 0, 0, 0, 4.57471097850338, 3.91202300542815, 3.91202300542815, 4.04305126783455, 4.48863636973214, 0, 3.36729582998647, 0, 0, 0, 3.49650756146648, 4.61512051684126, 3.52636052461616, 2.70805020110221, 0, 0, 0, 0, 0, 0, 4.55387689160054, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 4.60517018598809, 0, 0, 0, 3.52636052461616, 0, 0, 0, 4.56434819146784, 4.55387689160054, 0, 0, 0, 0, 0, 4.55387689160054, 0, 0, 0, 0, 0, 0, 4.60517018598809, 0, 4.52178857704904, 4.62497281328427, 0, 4.06044301054642, 0, 0, 0, 0, 2.77258872223978, 4.59511985013459, 0, 0, 3.3322045101752, 0, 4.59511985013459, 4.53259949315326, 4.33073334028633, 4.61512051684126, 0, 3.52636052461616, 0, 0, 4.61512051684126, 0, 0, 4.57471097850338, 4.60517018598809, 0, 4.62497281328427, 4.58496747867057, 3.78418963391826, 0, 0, 0, 4.56434819146784, 0, 4.14313472639153, 0, 0, 0, 0, 0, 4.0943445622221, 4.48863636973214, 0, 0, 4.62497281328427, 4.55387689160054, 0, 4.52178857704904, 0, 4.48863636973214, 0, 0, 0, 4.58496747867057, 4.59511985013459, 4.61512051684126, 4.57471097850338, 0, 3.73766961828337, 0, 0, 0, 0, 0, 4.55387689160054, 3.04452243772342, 4.57471097850338, 4.27666611901606, 4.51085950651685, 3.91202300542815, 3.87120101090789, 0, 4.61512051684126, 0, 0, 0, 0, 4.48863636973214, 0, 0, 4.63472898822964, 3.68887945411394, 0, 2.30258509299405, 2.83321334405622, 0, 1.38629436111989, 0, 0, 3.25809653802148, 4.20469261939097, 4.62497281328427, 4.56434819146784, 4.21950770517611, 4.59511985013459, 4.40671924726425, 0, 4.00733318523247, 0, 4.62497281328427, 3.29583686600433, 0, 0, 0, 0, 0, 3.3322045101752, 4.21950770517611, 0, 3.52636052461616, 0, 4.54329478227, 3.98898404656427, 0, 0, 0, 0, 0, 0, 4.0943445622221, 3.09104245335832, 0, 0, 4.58496747867057, 0, 4.58496747867057, 0, 4.57471097850338, 2.30258509299405, 2.70805020110221, 0, 4.58496747867057, 2.94443897916644, 4.20469261939097, 4.4188406077966, 0, 0, 0, 4.58496747867057, 0, 4.52178857704904, 3.43398720448515, 0, 0, 0, 4.61512051684126, 0, 4.61512051684126, 3.71357206670431, 4.62497281328427, 4.56434819146784, 0, 4.59511985013459, 0, 0, 0, 4.53259949315326, 4.61512051684126, 4.52178857704904, 4.21950770517611, 3.3322045101752, 4.58496747867057, 0, 0, 4.54329478227, 0, 0, 3.43398720448515, 0, 0, 0, 0, 4.61512051684126, 4.57471097850338, 3.49650756146648, 0, 4.58496747867057, 1.94591014905531, 0, 4.55387689160054, 0, 4.35670882668959, 0, 0, 4.4188406077966, 0, 0, 0, 4.02535169073515, 0, 2.19722457733622, 4.61512051684126, 0, 0, 4.61512051684126, 0, 0, 1.79175946922805, 0, 0, 0, 4.33073334028633, 0, 0, 0, 4.07753744390572, 4.33073334028633, 3.09104245335832, 0, 4.60517018598809, 0, 0, 0, 0, 0, 0, 4.55387689160054, 0, 4.58496747867057, 0, 0, 3.78418963391826, 0, 4.62497281328427, 0, 0, 0, 0, 3.29583686600433, 0, 0, 0, 0, 4.57471097850338, 0, 4.49980967033027, 0, 0, 4.61512051684126, 0, 0, 0, 0, 0, 4.26267987704132, 4.55387689160054, 4.62497281328427, 0, 4.61512051684126, 0, 0, 0, 4.27666611901606, 3.09104245335832, 2.77258872223978, 0, 4.06044301054642, 3.09104245335832, 4.57471097850338, 0, 2.70805020110221, 0, 0, 4.55387689160054, 0, 0, 2.83321334405622, 4.61512051684126, 3.71357206670431, 3.40119738166216, 0, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 4.62497281328427, 4.61512051684126, 0, 3.73766961828337, 0, 4.61512051684126, 4.56434819146784, 0, 0, 4.61512051684126, 0, 4.57471097850338, 0, 0, 4.04305126783455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.18965474202643, 0, 2.99573227355399, 0, 4.21950770517611, 0, 4.68213122712422, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 3.87120101090789, 4.57471097850338, 0, 0, 0, 0, 0, 0, 0, 0, 4.29045944114839, 3.80666248977032, 0, 0, 0, 0, 0, 3.61091791264422, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.31748811353631, 0, 4.58496747867057, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 3.66356164612965, 0, 4.60517018598809, 0, 4.59511985013459, 0, 0, 0, 0, 2.484906649788, 0, 0, 4.56434819146784, 2.39789527279837, 0, 4.58496747867057, 0, 0, 4.62497281328427, 0, 0, 0, 4.61512051684126, 0, 4.30406509320417, 4.30406509320417, 0, 0, 0, 0, 4.60517018598809, 2.89037175789616, 4.58496747867057, 0, 0, 0, 0, 0, 0, 4.33073334028633, 4.53259949315326, 0, 0, 3.55534806148941, 0, 1.94591014905531, 4.60517018598809, 0, 0, 0, 4.26267987704132, 4.55387689160054, 0, 3.2188758248682, 0, 0, 0, 4.47733681447821, 4.11087386417331, 0, 4.49980967033027, 0, 0, 0, 4.62497281328427, 2.77258872223978, 4.62497281328427, 4.55387689160054, 4.44265125649032, 0, 3.46573590279973, 0, 4.61512051684126, 3.58351893845611, 0, 0, 4.55387689160054, 3.66356164612965, 0, 0, 0, 0, 0, 0, 4.62497281328427, 4.12713438504509, 0, 0, 4.59511985013459, 4.61512051684126, 4.61512051684126, 0, 0, 0, 4.60517018598809, 4.58496747867057, 0, 4.49980967033027, 0, 4.39444915467244, 0, 4.59511985013459, 3.87120101090789, 0, 0, 2.63905732961526, 4.58496747867057, 4.02535169073515, 4.63472898822964, 4.53259949315326, 0, 4.55387689160054, 4.62497281328427, 4.59511985013459, 0, 0, 0, 4.47733681447821, 0, 0, 4.58496747867057, 4.58496747867057, 0, 2.99573227355399, 0, 0, 0, 4.60517018598809, 0, 0, 3.76120011569356, 0, 0, 0, 0, 4.45434729625351, 0, 4.57471097850338, 0, 4.58496747867057, 0, 0, 0, 4.29045944114839, 0, 4.63472898822964, 4.59511985013459, 4.58496747867057, 4.58496747867057, 4.61512051684126, 4.60517018598809, 4.62497281328427, 3.25809653802148, 4.62497281328427, 4.58496747867057, 4.58496747867057, 4.62497281328427, 0, 0, 0, 0, 0, 4.61512051684126, 0, 0, 3.93182563272433, 4.60517018598809, 4.57471097850338, 0, 4.58496747867057, 0, 0, 4.57471097850338, 4.58496747867057, 4.53259949315326, 0, 4.59511985013459, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 1.09861228866811, 0.693147180559945, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 1.09861228866811, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 2.19722457733622, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.6094379124341, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.79175946922805, 0, 0.693147180559945, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 1.38629436111989, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.6094379124341, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.6094379124341, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 1.94591014905531, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 2.07944154167984, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 1.79175946922805, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 3.58351893845611, 4.40671924726425, 0, 4.35670882668959, 0, 0, 0, 0, 4.34380542185368, 4.38202663467388, 4.40671924726425, 4.4188406077966, 0, 4.26267987704132, 0, 4.31748811353631, 4.40671924726425, 4.18965474202643, 4.33073334028633, 4.4188406077966, 4.14313472639153, 0, 0, 4.44265125649032, 0, 2.63905732961526, 0, 0, 4.38202663467388, 4.35670882668959, 4.12713438504509, 0, 0, 0, 0, 4.40671924726425, 4.40671924726425, 0, 0, 4.39444915467244, 4.40671924726425, 0, 4.27666611901606, 4.40671924726425, 0, 0, 0, 0, 0, 0, 4.27666611901606, 0, 0, 0, 4.23410650459726, 4.27666611901606, 0, 3.3322045101752, 0, 4.34380542185368, 0, 4.34380542185368, 0, 0, 0, 4.36944785246702, 4.34380542185368, 0, 2.89037175789616, 0, 0, 0, 0, 4.35670882668959, 0, 0, 2.89037175789616, 0, 0, 4.23410650459726, 0, 3.87120101090789, 0, 4.31748811353631, 0, 4.4188406077966, 0, 0, 4.35670882668959, 3.97029191355212, 3.49650756146648, 0, 0, 4.33073334028633, 4.33073334028633, 0, 4.34380542185368, 3.40119738166216, 0, 3.43398720448515, 4.40671924726425, 0, 3.85014760171006, 0, 0, 4.45434729625351, 0, 0, 0, 0, 0, 0, 0, 4.39444915467244, 0, 4.20469261939097, 0, 3.63758615972639, 0, 4.34380542185368, 4.33073334028633, 0, 0, 0, 0, 4.31748811353631, 0, 4.40671924726425, 0, 4.39444915467244, 3.13549421592915, 0, 4.36944785246702, 0, 0, 4.36944785246702, 0, 0, 4.12713438504509, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 4.4188406077966, 0, 0, 0, 0, 4.30406509320417, 0, 0, 0, 0, 0, 4.34380542185368, 0, 4.23410650459726, 2.39789527279837, 0, 0, 0, 0, 3.43398720448515, 0, 0, 0, 0, 0, 3.46573590279973, 3.25809653802148, 0, 0, 0, 0, 0, 4.38202663467388, 0, 0, 0, 0, 3.71357206670431, 4.36944785246702, 4.33073334028633, 3.97029191355212, 0, 4.38202663467388, 0, 0, 4.40671924726425, 2.99573227355399, 0, 4.34380542185368, 0, 2.63905732961526, 0, 0, 0, 4.4188406077966, 3.40119738166216, 0, 0, 0, 4.34380542185368, 4.33073334028633, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 4.34380542185368, 0, 4.39444915467244, 3.36729582998647, 0, 4.34380542185368, 0, 0, 4.38202663467388, 0, 3.78418963391826, 0, 0, 0, 0, 0, 0, 3.87120101090789, 0, 0, 0, 0, 3.85014760171006, 2.07944154167984, 0, 0, 0, 0, 4.39444915467244, 0, 0, 4.33073334028633, 0, 4.35670882668959, 3.36729582998647, 0, 0, 4.38202663467388, 0, 4.39444915467244, 3.93182563272433, 3.52636052461616, 0, 0, 0, 0, 2.94443897916644, 0, 4.38202663467388, 4.43081679884331, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.43081679884331, 4.31748811353631, 0, 0, 0, 0, 0, 0, 0, 0, 4.36944785246702, 4.34380542185368, 0, 0, 0, 4.26267987704132, 0, 3.71357206670431, 4.36944785246702, 0, 4.33073334028633, 2.94443897916644, 0, 4.02535169073515, 2.94443897916644, 3.17805383034795, 0, 3.13549421592915, 0, 4.36944785246702, 0, 0, 0, 4.21950770517611, 0, 3.80666248977032, 0, 0, 4.38202663467388, 4.27666611901606, 0, 0, 0, 3.58351893845611, 4.31748811353631, 4.00733318523247, 0, 4.39444915467244, 0, 0, 4.39444915467244, 4.34380542185368, 0, 3.73766961828337, 0, 4.39444915467244, 0, 4.26267987704132, 4.23410650459726, 0, 4.38202663467388, 0, 0, 0, 4.39444915467244, 3.78418963391826, 0, 0, 0, 0, 4.17438726989564, 0, 3.09104245335832, 0, 4.26267987704132, 0, 0, 0, 0, 4.14313472639153, 0, 0, 0, 0, 0, 4.38202663467388, 4.35670882668959, 0, 0, 3.8286413964891, 3.09104245335832, 0, 4.36944785246702, 4.38202663467388, 3.63758615972639, 0, 3.61091791264422, 0, 0, 4.36944785246702, 4.38202663467388, 4.35670882668959, 0, 4.39444915467244, 0, 0, 4.35670882668959, 4.45434729625351, 4.31748811353631, 4.15888308335967, 4.38202663467388, 3.68887945411394, 0, 4.34380542185368, 4.35670882668959, 4.33073334028633, 0, 0, 4.39444915467244, 3.80666248977032, 0, 3.55534806148941, 4.34380542185368, 0, 0, 4.24849524204936, 0, 0, 0, 0, 4.34380542185368, 3.76120011569356, 3.76120011569356, 3.80666248977032, 4.29045944114839, 0, 3.2188758248682, 0, 0, 0, 3.29583686600433, 4.33073334028633, 3.36729582998647, 2.63905732961526, 0, 0, 0, 0, 0, 0, 4.34380542185368, 4.36944785246702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 4.39444915467244, 0, 0, 0, 3.36729582998647, 0, 0, 0, 4.34380542185368, 4.26267987704132, 0, 0, 0, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 4.34380542185368, 0, 4.31748811353631, 4.39444915467244, 0, 3.85014760171006, 0, 0, 0, 0, 2.70805020110221, 4.30406509320417, 0, 0, 3.09104245335832, 0, 4.36944785246702, 4.30406509320417, 4.0943445622221, 4.29045944114839, 0, 3.36729582998647, 0, 0, 4.36944785246702, 0, 0, 4.33073334028633, 4.43081679884331, 0, 4.38202663467388, 4.36944785246702, 3.55534806148941, 0, 0, 0, 4.31748811353631, 0, 3.95124371858143, 0, 0, 0, 0, 0, 3.85014760171006, 4.17438726989564, 0, 0, 4.39444915467244, 4.34380542185368, 0, 4.34380542185368, 0, 4.29045944114839, 0, 0, 0, 4.35670882668959, 4.39444915467244, 4.34380542185368, 4.23410650459726, 0, 3.52636052461616, 0, 0, 0, 0, 0, 4.34380542185368, 2.94443897916644, 4.36944785246702, 4.06044301054642, 4.29045944114839, 3.76120011569356, 3.68887945411394, 0, 4.35670882668959, 0, 0, 0, 0, 4.29045944114839, 0, 0, 4.35670882668959, 3.49650756146648, 0, 2.30258509299405, 2.77258872223978, 0, 0, 0, 0, 3.09104245335832, 3.95124371858143, 4.38202663467388, 4.31748811353631, 3.97029191355212, 4.40671924726425, 4.12713438504509, 0, 3.85014760171006, 0, 4.40671924726425, 3.13549421592915, 0, 0, 0, 0, 0, 3.17805383034795, 4.06044301054642, 0, 3.36729582998647, 0, 4.34380542185368, 3.78418963391826, 0, 0, 0, 0, 0, 0, 3.91202300542815, 2.99573227355399, 0, 0, 4.33073334028633, 0, 4.33073334028633, 0, 4.29045944114839, 2.30258509299405, 2.63905732961526, 0, 4.33073334028633, 2.83321334405622, 4.00733318523247, 4.21950770517611, 0, 0, 0, 4.29045944114839, 0, 4.31748811353631, 3.25809653802148, 0, 0, 0, 4.34380542185368, 0, 4.40671924726425, 3.52636052461616, 4.38202663467388, 4.31748811353631, 0, 4.36944785246702, 0, 0, 0, 4.29045944114839, 4.35670882668959, 4.26267987704132, 4.02535169073515, 3.17805383034795, 4.36944785246702, 0, 0, 4.29045944114839, 0, 0, 3.2188758248682, 0, 0, 0, 0, 4.39444915467244, 4.23410650459726, 3.25809653802148, 0, 4.29045944114839, 1.79175946922805, 0, 4.34380542185368, 0, 4.14313472639153, 0, 0, 4.11087386417331, 0, 0, 0, 3.85014760171006, 0, 2.07944154167984, 4.38202663467388, 0, 0, 4.36944785246702, 0, 0, 0, 0, 0, 0, 4.12713438504509, 0, 0, 0, 3.85014760171006, 4.0943445622221, 2.94443897916644, 0, 4.43081679884331, 0, 0, 0, 0, 0, 0, 4.34380542185368, 0, 4.36944785246702, 0, 0, 3.58351893845611, 0, 4.44265125649032, 0, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 4.34380542185368, 0, 4.31748811353631, 0, 0, 4.43081679884331, 0, 0, 0, 0, 0, 4.0943445622221, 4.34380542185368, 4.35670882668959, 0, 4.39444915467244, 0, 0, 0, 4.06044301054642, 2.89037175789616, 2.70805020110221, 0, 3.76120011569356, 2.94443897916644, 4.31748811353631, 0, 2.56494935746154, 0, 0, 4.34380542185368, 0, 0, 2.70805020110221, 4.30406509320417, 3.61091791264422, 3.2188758248682, 0, 4.39444915467244, 0, 0, 0, 0, 0, 0, 0, 4.40671924726425, 4.39444915467244, 0, 3.52636052461616, 0, 4.27666611901606, 4.24849524204936, 0, 0, 4.39444915467244, 0, 4.26267987704132, 0, 0, 3.8286413964891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.97029191355212, 0, 2.94443897916644, 0, 4.04305126783455, 0, 4.45434729625351, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 3.63758615972639, 4.36944785246702, 0, 0, 0, 0, 0, 0, 0, 0, 4.0943445622221, 3.52636052461616, 0, 0, 0, 0, 0, 3.43398720448515, 4.38202663467388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.12713438504509, 0, 4.35670882668959, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 3.43398720448515, 0, 4.35670882668959, 0, 4.35670882668959, 0, 0, 0, 0, 2.39789527279837, 0, 0, 4.33073334028633, 2.07944154167984, 0, 4.39444915467244, 0, 0, 4.34380542185368, 0, 0, 0, 4.33073334028633, 0, 4.0943445622221, 4.12713438504509, 0, 0, 0, 0, 4.40671924726425, 2.83321334405622, 4.35670882668959, 0, 0, 0, 0, 0, 0, 4.0943445622221, 4.30406509320417, 0, 0, 3.29583686600433, 0, 1.94591014905531, 4.31748811353631, 0, 0, 0, 4.02535169073515, 4.26267987704132, 0, 2.99573227355399, 0, 0, 0, 4.27666611901606, 3.95124371858143, 0, 4.33073334028633, 0, 0, 0, 4.33073334028633, 2.56494935746154, 4.4188406077966, 4.34380542185368, 4.24849524204936, 0, 3.2188758248682, 0, 4.43081679884331, 3.43398720448515, 0, 0, 4.34380542185368, 3.46573590279973, 0, 0, 0, 0, 0, 0, 4.34380542185368, 3.95124371858143, 0, 0, 4.36944785246702, 4.40671924726425, 4.40671924726425, 0, 0, 0, 4.4188406077966, 4.38202663467388, 0, 4.24849524204936, 0, 4.15888308335967, 0, 4.39444915467244, 3.63758615972639, 0, 0, 2.56494935746154, 4.33073334028633, 3.87120101090789, 4.43081679884331, 4.29045944114839, 0, 4.34380542185368, 4.4188406077966, 4.38202663467388, 0, 0, 0, 4.27666611901606, 0, 0, 4.35670882668959, 4.36944785246702, 0, 2.83321334405622, 0, 0, 0, 4.33073334028633, 0, 0, 3.61091791264422, 0, 0, 0, 0, 4.07753744390572, 0, 4.35670882668959, 0, 4.36944785246702, 0, 0, 0, 4.06044301054642, 0, 4.38202663467388, 4.39444915467244, 4.31748811353631, 4.31748811353631, 4.39444915467244, 4.38202663467388, 4.4188406077966, 3.13549421592915, 4.4188406077966, 4.33073334028633, 4.33073334028633, 4.4188406077966, 0, 0, 0, 0, 0, 4.36944785246702, 0, 0, 3.73766961828337, 4.35670882668959, 4.33073334028633, 0, 4.30406509320417, 0, 0, 4.35670882668959, 4.36944785246702, 4.30406509320417, 0, 4.38202663467388, 0.494170156780135, 0.312403224557006, 0, 0.314353876710608, 0, 0, 0, 0, 0.301938723491973, 0.334677016985451, 0.309885882089034, 0.334107807868675, 0, 0.375229391707452, 0, 0.362876279035801, 0.223270732046763, 0.339145449223105, 0.227012717350933, 0.334107807868675, 0.444492438061344, 0, 0, 0.34072373896162, 0, 1.5442021222047, 0, 0, 0.225284528638337, 0.291839137298002, 0.297654477248662, 0, 0, 0, 0, 0.312403224557006, 0.312403224557006, 0, 0, 0.307481824910476, 0.264203530935207, 0, 0.272020518477341, 0.264203530935207, 0, 0, 0, 0, 0, 0, 0.272020518477341, 0, 0, 0, 0.444251059937868, 0.39855062093409, 0, 0.936553089964022, 0, 0.252426584159587, 0, 0.271203978622023, 0, 0, 0, 0.274258026204688, 0.30297368003908, 0, 1.73111484233122, 0, 0, 0, 0, 0.319465062977761, 0, 0, 1.73111484233122, 0, 0, 0.44213854711426, 0, 0.427774394053572, 0, 0.254478411453061, 0, 0.309257747046549, 0, 0, 0.347675444086348, 0.406253865381844, 0.841202666844029, 0, 0, 0.243944990566848, 0.460836461082662, 0, 0.271203978622023, 1.14076379435525, 0, 0.943130718573181, 0.309885882089034, 0, 0.569348002776984, 0, 0, 0.342220490877133, 0, 0, 0, 0, 0, 0, 0, 0.234426157684682, 0, 0.392851721208862, 0, 0.734815250933873, 0, 0.246653890829208, 0.295049136603492, 0, 0, 0, 0, 0.254478411453061, 0, 0.251304284896703, 0, 0.275913559723324, 1.36837680102287, 0, 0.27142196915141, 0, 0, 0.226242594208203, 0, 0, 0.47990672081384, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 0.271380376776611, 0, 0, 0, 0, 0.238079127040332, 0, 0, 0, 0, 0, 0.28475566782934, 0, 0.350517431573213, 0, 0, 0, 0, 0, 0.690553320555097, 0, 0, 0, 0, 0, 0.557843630275006, 0.800212722462319, 0, 0, 0, 0, 0, 0.344003860952933, 0, 0, 0, 0, 0.578417977502994, 0.347081548356732, 0.29017366569034, 0.277224507415129, 0, 0.268387325540199, 0, 0, 0.293641000479118, 0.847711434880166, 0, 0.272042468774298, 0, 1.5442021222047, 0, 0, 0, 0.288866563691058, 0.901817441884017, 0, 0, 0, 0.237021745855487, 0.264538951315079, 0, 0, 0, 0, 1.73111484233122, 0, 0, 0, 0.314954973046978, 0, 0.341189226397428, 0.723191309011633, 0, 0.269268811300983, 0, 0, 0.216364407987102, 0, 0.672732085007388, 0, 0, 0, 0, 0, 0, 0.371754935466022, 0, 0, 0, 0, 0.509209672526157, 5.24140438986225, 0, 0, 0, 0, 0.204523000729883, 0, 0, 0.202369429962527, 0, 0.3865588970167, 0.958021043896148, 0, 0, 0.245601780809872, 0, 0.239441105196089, 0.458720179574478, 0.87570428391642, 0, 0, 0, 0, 1.7923759220489, 0, 0.224119816444848, 0.2973596305317, 0, 0.292266086072958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.306523915515472, 0.254478411453061, 0, 0, 0, 0, 0, 0, 0, 0, 0.269285209248605, 0.40981849287478, 0, 0, 0, 0.472117427122265, 0, 0.540431644038799, 0.263053734996754, 0, 0.256277161863554, 1.7923759220489, 0, 0.331667208320814, 1.34000935909475, 0.918806633090413, 0, 1.57682097651122, 0, 0.275266987382106, 0, 0, 0, 0.311708530640119, 0, 0.418875983360525, 0, 0, 0.346906561605208, 0.320850345366418, 0, 0, 0, 0.669408262694084, 0.355171854450396, 0.390821762478886, 0, 0.351861765373514, 0, 0, 0.22997050090175, 0.34580843516543, 0, 0.531137218677061, 0, 0.225960288072292, 0, 0.22157949941388, 0.560348909478433, 0, 0.362661608830065, 0, 0, 0, 0.225960288072292, 0.538041883180279, 0, 0, 0, 0, 0.290543548446881, 0, 1.05715921095217, 0, 0.271426499076034, 0, 0, 0, 0, 0.331295409517069, 0, 0, 0, 0, 0, 0.284457763808005, 0.276459899737701, 0, 0, 0.495290016411334, 1.17493409003786, 0, 0.302026208685838, 0.268387325540199, 0.658129257938394, 0, 0.679999178591032, 0, 0, 0.330300822253112, 0.188219300095333, 0.213166789133356, 0, 0.267783842186279, 0, 0, 0.42849347165767, 0.336323082098144, 0.302319129848189, 0.352329853290997, 0.278718455371326, 0.462893043701312, 0, 0.318953672521507, 0.237595897272811, 0.325721213042295, 0, 0, 0.225960288072292, 0.76061637521152, 0, 0.641576915886562, 0.25290604062307, 0, 0, 0.270702999306128, 0, 0, 0, 0, 0.286621936941535, 0.782906965285105, 0.757489449601549, 0.618264486561655, 0.292033641645871, 0, 1.2880287907619, 0, 0, 0, 0.877457193082609, 0.211123739098949, 0.98066045993869, 1.5442021222047, 0, 0, 0, 0, 0, 0, 0.30297368003908, 0.281167380711295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.78613710686606, 0.225960288072292, 0, 0, 0, 0.98066045993869, 0, 0, 0, 0.429294017432165, 0.321436864479171, 0, 0, 0, 0, 0, 0.30297368003908, 0, 0, 0, 0, 0, 0, 0.306823327159171, 0, 0.254478411453061, 0.245544045501941, 0, 0.565126354304392, 0, 0, 0, 0, 1.70826900590328, 0.295519520735739, 0, 0, 1.08085214029411, 0, 0.276895690474959, 0.361383833980154, 0.391299098115024, 0.230310384402894, 0, 0.98066045993869, 0, 0, 0.211220797471138, 0, 0, 0.232767690048566, 0.294023339730362, 0, 0.202221617661428, 0.269285209248605, 0.687558180869777, 0, 0, 0, 0.249723630486917, 0, 0.453868151189595, 0, 0, 0, 0, 0, 0.714995946240111, 0.403719812535583, 0, 0, 0.450433201384486, 0.30297368003908, 0, 0.412450970331383, 0, 0.292033641645871, 0, 0, 0, 0.267729467105115, 0.241134363556797, 0.325477191806495, 0.444251059937868, 0, 0.747468395454271, 0, 0, 0, 0, 0, 0.30297368003908, 1.7923759220489, 0.353068820275631, 0.35141807434904, 0.245682664815602, 0.744858146823006, 0.428415701469014, 0, 0.227771084465228, 0, 0, 0, 0, 0.284291856866989, 0, 0, 0.310611589324557, 0.903322723989628, 0, 4.74133078672761, 2.37843971755005, 0, 0, 0, 0, 1.09988778581671, 0.439465695019343, 0.240367139627058, 0.292702691324947, 0.27809038214418, 0.332164018882422, 0.31480154658381, 0, 0.59855012452951, 0, 0.205105439231234, 0.91964133642142, 0, 0, 0, 0, 0, 1.23366674945186, 0.372334667652189, 0, 0.98066045993869, 0, 0.271203978622023, 0.401190174316326, 0, 0, 0, 0, 0, 0, 0.632865616193342, 1.81505563059998, 0, 0, 0.32789904662135, 0, 0.236064908270878, 0, 0.23593585698252, 4.74133078672761, 1.95539509619382, 0, 0.236064908270878, 1.91739432283256, 0.402516197520927, 0.330380834520838, 0, 0, 0, 0.435725716595369, 0, 0.254478411453061, 1.26895324124573, 0, 0, 0, 0.237021745855487, 0, 0.308808024154022, 0.556640975453094, 0.258563951344469, 0.247327176425606, 0, 0.299582909305062, 0, 0, 0, 0.235621804600582, 0.230494931814746, 0.289497362736755, 0.399932743704768, 1.6220594534704, 0.269285209248605, 0, 0, 0.512737798575773, 0, 0, 0.774964474811945, 0, 0, 0, 0, 0.275913559723324, 0.444251059937868, 0.666816398822789, 0, 0.29049183487949, 4.40490312214513, 0, 0.30297368003908, 0, 0.348045594703269, 0, 0, 0.549953273750436, 0, 0, 0, 0.594548669827774, 0, 5.24140438986225, 0.221876118032434, 0, 0, 0.225842494305518, 0, 0, 0, 0, 0, 0, 0.324940959775057, 0, 0, 0, 0.539389546518545, 0.644266670765523, 1.14281968844155, 0, 0.294023339730362, 0, 0, 0, 0, 0, 0, 0.30297368003908, 0, 0.2719785037074, 0, 0, 0.467570681377432, 0, 0.34072373896162, 0, 0, 0, 0, 0.665238214666863, 0, 0, 0, 0, 0.294888427817243, 0, 0.395368609656602, 0, 0, 0.408885745447053, 0, 0, 0, 0, 0, 0.454983758851523, 0.30297368003908, 0.33753287523964, 0, 0.28307931217305, 0, 0, 0, 0.462641468404897, 1.53735772478377, 1.70826900590328, 0, 0.474365132330889, 1.75822753424622, 0.249671505420172, 0, 2.24568379414746, 0, 0, 0.30297368003908, 0, 0, 1.50148797361248, 0.413672031350312, 0.787330502335832, 0.820875535831347, 0, 0.287677085282379, 0, 0, 0, 0, 0, 0, 0, 0.273574842062784, 0.322258053921587, 0, 0.652343730383853, 0, 0.418837254434271, 0.437153584256191, 0, 0, 0.322258053921587, 0, 0.436148110874876, 0, 0, 0.673761034447092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.442153636166868, 0, 1.7923759220489, 0, 0.482055439233372, 0, 0.303388230486764, 0, 0, 0, 0, 0, 1.70826900590328, 0, 0, 0, 0, 0, 0, 0.650851534849827, 0.281657424580965, 0, 0, 0, 0, 0, 0, 0, 0, 0.337436934834939, 0.764110804527296, 0, 0, 0, 0, 0, 0.693204856281947, 0.200765211925614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.375066200841858, 0, 0.297997326860307, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 0.635393317854526, 0, 0.248916420157414, 0, 0.22745713370209, 0, 0, 0, 0, 2.58465729777969, 0, 0, 0.256946473693431, 5.24140438986225, 0, 0.347268084058763, 0, 0, 0.259206884011278, 0, 0, 0, 0.230583909743927, 0, 0.305949758614952, 0.372206257216077, 0, 0, 0, 0, 0.274469074924569, 2.01099320152793, 0.380143434656899, 0, 0, 0, 0, 0, 0, 0.305872370805274, 0.292024037204065, 0, 0, 0.7079549401592, 0, 7.04875931191986, 0.229574180259607, 0, 0, 0, 0.434225161637496, 0.265648540969818, 0, 1.48006902580372, 0, 0, 0, 0.286243756942894, 0.519107953392194, 0, 0.384609919374082, 0, 0, 0, 0.230230448516047, 2.86428226594619, 0.308210128712469, 0.284733046296767, 0.379955153643041, 0, 0.615970170216855, 0, 0.328495542528313, 0.935150255866193, 0, 0, 0.284733046296767, 0.661651161078178, 0, 0, 0, 0, 0, 0, 0.270626464830403, 0.608095754762081, 0, 0, 0.228755068996959, 0.362571953469492, 0.362571953469492, 0, 0, 0, 0.368805793006138, 0.385367816720747, 0, 0.300267374033821, 0, 0.274940300730001, 0, 0.287134087285582, 0.519197800428062, 0, 0, 2.67975175014649, 0.282553921596038, 0.59558317091831, 0.282967465788391, 0.269187490168835, 0, 0.269030104733471, 0.308210128712469, 0.263707971545156, 0, 0, 0, 0.321267696999242, 0, 0, 0.347034062088096, 0.351398843850925, 0, 1.39091255962125, 0, 0, 0, 0.208927524714573, 0, 0, 0.78169261066, 0, 0, 0, 0, 0.426448383378181, 0, 0.264498812685525, 0, 0.25724522488881, 0, 0, 0, 0.325052135230517, 0, 0.308082452411229, 0.36776604867954, 0.218337925621457, 0.218337925621457, 0.353641900269307, 0.220695961775166, 0.260687090670009, 2.23433074315342, 0.260687090670009, 0.216233773634519, 0.216233773634519, 0.260687090670009, 0, 0, 0, 0, 0, 0.339842701354473, 0, 0, 0.822584607251349, 0.285826489145903, 0.303532594795409, 0, 0.291442574450388, 0, 0, 0.228945782393772, 0.314630859108809, 0.275309722905657, 0, 0.361368813068621, 0.2, 0.0588235294117647, 1, 0.333333333333333, 1, 1, 1, 1, 0.0588235294117647, 0.176470588235294, 0.125, 0.222222222222222, 1, 0.230769230769231, 1, 0.133333333333333, 0.105263157894737, 0.266666666666667, 0.136363636363636, 0.222222222222222, 0.0769230769230769, 1, 1, 0.25, 1, 0.333333333333333, 1, 1, 0.142857142857143, 0.0588235294117647, 0.117647058823529, 1, 1, 1, 1, 0.0588235294117647, 0.0588235294117647, 1, 1, 0.157894736842105, 0.117647058823529, 1, 0.0555555555555556, 0.117647058823529, 1, 1, 1, 1, 1, 1, 0.0555555555555556, 1, 1, 1, 0.2, 0.0769230769230769, 1, 0.142857142857143, 1, 0.0555555555555556, 1, 0.0588235294117647, 1, 1, 1, 0.0555555555555556, 0.0625, 1, 0.25, 1, 1, 1, 1, 0.235294117647059, 1, 1, 0.25, 1, 1, 0.0714285714285714, 1, 0.166666666666667, 1, 0.0588235294117647, 1, 0.1875, 1, 1, 0.2, 0.333333333333333, 0.142857142857143, 1, 1, 0.105263157894737, 0.230769230769231, 1, 0.0588235294117647, 0.2, 1, 0.571428571428571, 0.125, 1, 0.3, 1, 1, 0.230769230769231, 1, 1, 1, 1, 1, 1, 1, 0.263157894736842, 1, 0.0714285714285714, 1, 0.25, 1, 0.1, 0.0625, 1, 1, 1, 1, 0.0588235294117647, 1, 0.210526315789474, 1, 0.238095238095238, 0.2, 1, 0.35, 1, 1, 0.105263157894737, 1, 1, 0.272727272727273, 1, 1, 1, 0.5, 1, 1, 1, 1, 1, 1, 0.315789473684211, 1, 1, 1, 1, 0.15, 1, 1, 1, 1, 1, 0.157894736842105, 1, 0.3125, 1, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 1, 0.285714285714286, 0.285714285714286, 1, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 0.125, 0.2, 0.117647058823529, 0.1875, 1, 0.19047619047619, 1, 1, 0.176470588235294, 0.2, 1, 0.263157894736842, 1, 0.333333333333333, 1, 1, 1, 0.294117647058823, 0.2, 1, 1, 1, 0.142857142857143, 0.166666666666667, 1, 1, 1, 1, 0.25, 1, 1, 1, 0.166666666666667, 1, 0.2, 0.166666666666667, 1, 0.2, 1, 1, 0.142857142857143, 1, 0.375, 1, 1, 1, 1, 1, 1, 0.3, 1, 1, 1, 1, 0.2, 0.5, 1, 1, 1, 1, 0.1, 1, 1, 0.0952380952380952, 1, 0.1875, 0.166666666666667, 1, 1, 0.0526315789473684, 1, 0.157894736842105, 0.1, 0.142857142857143, 1, 1, 1, 1, 0.333333333333333, 1, 0.25, 0.117647058823529, 1, 0.235294117647059, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.1875, 0.0588235294117647, 1, 1, 1, 1, 1, 1, 1, 1, 0.0526315789473684, 0.133333333333333, 1, 1, 1, 0.0769230769230769, 1, 0.4, 0.111111111111111, 1, 0.1, 0.333333333333333, 1, 0.0714285714285714, 0.2, 0.142857142857143, 1, 0.4, 1, 0.25, 1, 1, 1, 0.2, 1, 0.1, 1, 1, 0.466666666666667, 0.133333333333333, 1, 1, 1, 0.375, 0.125, 0.153846153846154, 1, 0.375, 1, 1, 0.157894736842105, 0.4, 1, 0.166666666666667, 1, 0.05, 1, 0.411764705882353, 0.363636363636364, 1, 0.333333333333333, 1, 1, 1, 0.05, 0.1, 1, 1, 1, 1, 0.157894736842105, 1, 0.6, 1, 0.0555555555555556, 1, 1, 1, 1, 0.0666666666666667, 1, 1, 1, 1, 1, 0.0526315789473684, 0.111111111111111, 1, 1, 0.222222222222222, 0.25, 1, 0.1875, 0.19047619047619, 0.25, 1, 0.111111111111111, 1, 1, 0.3125, 0.19047619047619, 0.285714285714286, 1, 0.222222222222222, 1, 1, 0.0714285714285714, 0.125, 0.125, 0.25, 0.263157894736842, 0.222222222222222, 1, 0.0666666666666667, 0.15, 0.133333333333333, 1, 1, 0.05, 0.222222222222222, 1, 0.142857142857143, 0.105263157894737, 1, 1, 0.1, 1, 1, 1, 1, 0.294117647058823, 0.142857142857143, 0.25, 0.1, 0.1875, 1, 0.666666666666667, 1, 1, 1, 0.142857142857143, 0.166666666666667, 0.2, 0.333333333333333, 1, 1, 1, 1, 1, 1, 0.0625, 0.117647058823529, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.25, 0.05, 1, 1, 1, 0.2, 1, 1, 1, 0.4, 0.0666666666666667, 1, 1, 1, 1, 1, 0.0625, 1, 1, 1, 1, 1, 1, 0.235294117647059, 1, 0.0588235294117647, 0.142857142857143, 1, 0.272727272727273, 1, 1, 1, 1, 0.333333333333333, 0.388888888888889, 1, 1, 0.166666666666667, 1, 0.210526315789474, 0.117647058823529, 0.0714285714285714, 0.142857142857143, 1, 0.2, 1, 1, 0.142857142857143, 1, 1, 0.0526315789473684, 0.125, 1, 0.238095238095238, 0.0526315789473684, 0.111111111111111, 1, 1, 1, 0.05, 1, 0.0833333333333333, 1, 1, 1, 1, 1, 0.2, 0.133333333333333, 1, 1, 0.153846153846154, 0.0625, 1, 0.0714285714285714, 1, 0.1875, 1, 1, 1, 0.0526315789473684, 0.111111111111111, 0.0625, 0.2, 1, 0.428571428571429, 1, 1, 1, 1, 1, 0.0625, 0.333333333333333, 0.125, 0.0769230769230769, 0.111111111111111, 0.25, 0.111111111111111, 1, 0.333333333333333, 1, 1, 1, 1, 0.235294117647059, 1, 1, 0.5, 0.142857142857143, 1, 0.5, 0.333333333333333, 1, 1, 1, 1, 0.2, 0.384615384615385, 0.35, 0.166666666666667, 0.0666666666666667, 0.294117647058823, 0.0625, 1, 0.5, 1, 0.15, 0.6, 1, 1, 1, 1, 1, 0.4, 0.181818181818182, 1, 0.2, 1, 0.0588235294117647, 0.272727272727273, 1, 1, 1, 1, 1, 1, 0.111111111111111, 0.25, 1, 1, 0.111111111111111, 1, 0.2, 1, 0.105263157894737, 0.5, 0.333333333333333, 1, 0.2, 0.333333333333333, 0.0833333333333333, 0.2, 1, 1, 1, 0.0714285714285714, 1, 0.0588235294117647, 0.333333333333333, 1, 1, 1, 0.142857142857143, 1, 0.166666666666667, 0.25, 0.181818181818182, 0.0952380952380952, 1, 0.263157894736842, 1, 1, 1, 0.157894736842105, 0.0454545454545454, 0.315789473684211, 0.0833333333333333, 0.25, 0.0526315789473684, 1, 1, 0.0833333333333333, 1, 1, 0.166666666666667, 1, 1, 1, 1, 0.238095238095238, 0.2, 0.333333333333333, 1, 0.25, 0.5, 1, 0.0625, 1, 0.133333333333333, 1, 1, 0.230769230769231, 1, 1, 1, 0.2, 1, 0.5, 0.1, 1, 1, 0.0555555555555556, 1, 1, 1, 1, 1, 1, 0.214285714285714, 1, 1, 1, 0.111111111111111, 0.0909090909090909, 0.25, 1, 0.125, 1, 1, 1, 1, 1, 1, 0.0625, 1, 0.166666666666667, 1, 1, 0.222222222222222, 1, 0.25, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 0.25, 1, 0.357142857142857, 1, 1, 0.142857142857143, 1, 1, 1, 1, 1, 0.461538461538462, 0.0625, 0.0666666666666667, 1, 0.0555555555555556, 1, 1, 1, 0.153846153846154, 0.2, 0.333333333333333, 1, 0.2, 0.25, 0.0526315789473684, 1, 0.333333333333333, 1, 1, 0.0625, 1, 1, 0.25, 0.0666666666666667, 0.166666666666667, 0.2, 1, 0.166666666666667, 1, 1, 1, 1, 1, 1, 1, 0.111111111111111, 0.176470588235294, 1, 0.142857142857143, 1, 0.0666666666666667, 0.0714285714285714, 1, 1, 0.176470588235294, 1, 0.0714285714285714, 1, 1, 0.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0833333333333333, 1, 0.333333333333333, 1, 0.272727272727273, 1, 0.411764705882353, 1, 1, 1, 1, 1, 0.333333333333333, 1, 1, 1, 1, 1, 1, 0.333333333333333, 0.352941176470588, 1, 1, 1, 1, 1, 1, 1, 1, 0.0769230769230769, 0.142857142857143, 1, 1, 1, 1, 1, 0.25, 0.45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.153846153846154, 1, 0.421052631578947, 1, 1, 1, 1, 1, 1, 1, 0.5, 1, 1, 1, 1, 1, 1, 0.222222222222222, 1, 0.333333333333333, 1, 0.142857142857143, 1, 1, 1, 1, 0.333333333333333, 1, 1, 0.0555555555555556, 0.5, 1, 0.2, 1, 1, 0.0434782608695652, 1, 1, 1, 0.476190476190476, 1, 0.0714285714285714, 0.153846153846154, 1, 1, 1, 1, 0.117647058823529, 0.333333333333333, 0.266666666666667, 1, 1, 1, 1, 1, 1, 0.1875, 0.3125, 1, 1, 0.142857142857143, 1, 0.5, 0.166666666666667, 1, 1, 1, 0.357142857142857, 0.0952380952380952, 1, 0.2, 1, 1, 1, 0.176470588235294, 0.636363636363636, 1, 0.3125, 1, 1, 1, 0.19047619047619, 0.333333333333333, 0.117647058823529, 0.470588235294118, 0.133333333333333, 1, 0.222222222222222, 1, 0.1875, 0.285714285714286, 1, 1, 0.470588235294118, 0.25, 1, 1, 1, 1, 1, 1, 0.19047619047619, 0.111111111111111, 1, 1, 0.19047619047619, 0.176470588235294, 0.176470588235294, 1, 1, 1, 0.571428571428571, 0.25, 1, 0.117647058823529, 1, 0.0588235294117647, 1, 0.5, 0.181818181818182, 1, 1, 0.333333333333333, 0.210526315789474, 0.3, 0.15, 0.166666666666667, 1, 0.235294117647059, 0.117647058823529, 0.157894736842105, 1, 1, 1, 0.0666666666666667, 1, 1, 0.1875, 0.533333333333333, 1, 0.4, 1, 1, 1, 0.181818181818182, 1, 1, 0.375, 1, 1, 1, 1, 0.352941176470588, 1, 0.222222222222222, 1, 0.368421052631579, 1, 1, 1, 0.0714285714285714, 1, 0.368421052631579, 0.2, 0.0526315789473684, 0.0526315789473684, 0.375, 0.05, 0.0555555555555556, 0.5, 0.0555555555555556, 0.0952380952380952, 0.0952380952380952, 0.0555555555555556, 1, 1, 1, 1, 1, 0.375, 1, 1, 0.285714285714286, 0.1875, 0.125, 1, 0.1875, 1, 1, 0.105263157894737, 0.25, 0.111111111111111, 1, 0.25, 2.19722457733622, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.39789527279837, 0, 2.484906649788, 2.83321334405622, 2.484906649788, 2.94443897916644, 2.70805020110221, 2.56494935746154, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 2.70805020110221, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.70805020110221, 2.77258872223978, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.484906649788, 2.39789527279837, 0, 1.94591014905531, 0, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.39789527279837, 0, 2.83321334405622, 0, 2.56494935746154, 0, 0, 2.484906649788, 2.19722457733622, 1.94591014905531, 0, 0, 2.77258872223978, 2.30258509299405, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.63905732961526, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 0, 2.63905732961526, 0, 2.77258872223978, 1.6094379124341, 0, 2.39789527279837, 0, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.79175946922805, 1.79175946922805, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 0, 2.484906649788, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 2.56494935746154, 1.79175946922805, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 2.70805020110221, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.63905732961526, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 2.89037175789616, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.19722457733622, 2.56494935746154, 0, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.19722457733622, 0, 2.39789527279837, 0, 2.89037175789616, 0, 2.30258509299405, 2.07944154167984, 0, 2.30258509299405, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 2.70805020110221, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.07944154167984, 1.38629436111989, 0, 2.56494935746154, 2.89037175789616, 1.94591014905531, 0, 2.19722457733622, 0, 0, 2.484906649788, 2.63905732961526, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.63905732961526, 2.63905732961526, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 2.83321334405622, 2.63905732961526, 0, 0, 2.89037175789616, 2.07944154167984, 0, 1.94591014905531, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 2.94443897916644, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.89037175789616, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.19722457733622, 0, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.70805020110221, 2.77258872223978, 2.63905732961526, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.94443897916644, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.63905732961526, 2.83321334405622, 2.19722457733622, 0, 0, 0, 2.94443897916644, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 2.63905732961526, 0, 2.56494935746154, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.70805020110221, 1.09861228866811, 2.56494935746154, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 2.484906649788, 0, 0, 0, 0, 2.56494935746154, 0, 0, 2.30258509299405, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 2.07944154167984, 2.63905732961526, 2.70805020110221, 2.39789527279837, 2.484906649788, 2.70805020110221, 0, 1.79175946922805, 0, 2.89037175789616, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 2.30258509299405, 0, 1.6094379124341, 0, 2.83321334405622, 2.19722457733622, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 1.09861228866811, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 2.56494935746154, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.94443897916644, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 1.38629436111989, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.77258872223978, 0.693147180559945, 0, 2.70805020110221, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 0, 0, 2.07944154167984, 0, 2.484906649788, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 1.94591014905531, 2.70805020110221, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.484906649788, 1.6094379124341, 1.09861228866811, 0, 2.19722457733622, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.70805020110221, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.19722457733622, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 2.94443897916644, 0, 0, 0, 2.39789527279837, 0, 2.56494935746154, 2.484906649788, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.56494935746154, 2.484906649788, 0, 0, 1.94591014905531, 0, 0.693147180559945, 2.70805020110221, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 2.63905732961526, 1.6094379124341, 0, 2.30258509299405, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.07944154167984, 2.63905732961526, 0, 2.07944154167984, 0, 2.484906649788, 1.79175946922805, 0, 0, 2.07944154167984, 1.94591014905531, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.19722457733622, 0, 0, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 0, 0, 1.94591014905531, 2.56494935746154, 0, 2.70805020110221, 0, 2.77258872223978, 0, 1.94591014905531, 2.19722457733622, 0, 0, 1.09861228866811, 2.56494935746154, 2.07944154167984, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 2.77258872223978, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 0, 2.39789527279837, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 2.77258872223978, 2.77258872223978, 2.30258509299405, 2.99573227355399, 2.70805020110221, 1.09861228866811, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 0, 2.56494935746154, 0, 0, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.56494935746154, 2.19722457733622, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.63905732961526, 2.70805020110221, 0, 2.39789527279837, 0, 2.484906649788, 2.83321334405622, 2.484906649788, 2.94443897916644, 2.70805020110221, 2.56494935746154, 0, 0, 2.56494935746154, 0, 1.09861228866811, 0, 0, 2.70805020110221, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.77258872223978, 2.77258872223978, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.484906649788, 2.39789527279837, 0, 1.94591014905531, 0, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.39789527279837, 0, 2.83321334405622, 0, 2.63905732961526, 0, 0, 2.484906649788, 2.19722457733622, 1.94591014905531, 0, 0, 2.83321334405622, 2.30258509299405, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 2.63905732961526, 0, 2.07944154167984, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.63905732961526, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 0, 2.70805020110221, 0, 2.77258872223978, 1.6094379124341, 0, 2.39789527279837, 0, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.79175946922805, 1.79175946922805, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 0, 2.484906649788, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 2.56494935746154, 1.79175946922805, 0, 2.63905732961526, 0, 0, 2.83321334405622, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 2.70805020110221, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.63905732961526, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.89037175789616, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 2.89037175789616, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.19722457733622, 2.56494935746154, 0, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.30258509299405, 0, 2.39789527279837, 0, 2.89037175789616, 0, 2.30258509299405, 2.07944154167984, 0, 2.39789527279837, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 2.70805020110221, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.07944154167984, 1.38629436111989, 0, 2.56494935746154, 2.89037175789616, 1.94591014905531, 0, 2.19722457733622, 0, 0, 2.484906649788, 2.63905732961526, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.63905732961526, 2.63905732961526, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 2.83321334405622, 2.63905732961526, 0, 0, 2.89037175789616, 2.07944154167984, 0, 1.94591014905531, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 1.94591014905531, 2.30258509299405, 2.63905732961526, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 2.99573227355399, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.89037175789616, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.19722457733622, 0, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.70805020110221, 2.77258872223978, 2.63905732961526, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.94443897916644, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.63905732961526, 2.89037175789616, 2.19722457733622, 0, 0, 0, 2.94443897916644, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.77258872223978, 0, 2.63905732961526, 0, 2.63905732961526, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.63905732961526, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 2.484906649788, 0, 0, 0, 0, 2.56494935746154, 0, 0, 2.30258509299405, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 2.07944154167984, 2.63905732961526, 2.70805020110221, 2.39789527279837, 2.484906649788, 2.70805020110221, 0, 1.79175946922805, 0, 2.89037175789616, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 2.30258509299405, 0, 1.6094379124341, 0, 2.83321334405622, 2.19722457733622, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 1.09861228866811, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 2.56494935746154, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.94443897916644, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 1.38629436111989, 2.89037175789616, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.77258872223978, 0.693147180559945, 0, 2.77258872223978, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.83321334405622, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.07944154167984, 0, 2.56494935746154, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 1.94591014905531, 2.77258872223978, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.484906649788, 1.6094379124341, 1.09861228866811, 0, 2.19722457733622, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.19722457733622, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 2.94443897916644, 0, 0, 0, 2.39789527279837, 0, 2.56494935746154, 2.484906649788, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.56494935746154, 2.484906649788, 0, 0, 1.94591014905531, 0, 0.693147180559945, 2.70805020110221, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 2.63905732961526, 1.6094379124341, 0, 2.30258509299405, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.07944154167984, 2.63905732961526, 0, 2.07944154167984, 0, 2.484906649788, 1.79175946922805, 0, 0, 2.07944154167984, 1.94591014905531, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.19722457733622, 0, 0, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 0, 0, 1.94591014905531, 2.56494935746154, 0, 2.77258872223978, 0, 2.77258872223978, 0, 1.94591014905531, 2.19722457733622, 0, 0, 1.09861228866811, 2.56494935746154, 2.07944154167984, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 2.77258872223978, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 0, 2.39789527279837, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 2.77258872223978, 2.77258872223978, 2.30258509299405, 2.99573227355399, 2.70805020110221, 1.09861228866811, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 0, 2.56494935746154, 0, 0, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.56494935746154, 4.44753141102122, 4.99845159291209, 0, 5.34401590408034, 0, 0, 0, 0, 4.83101957587157, 5.35483227176722, 4.64828823133551, 5.67983273376747, 0, 4.50275270048942, 0, 5.08026790650122, 4.01887317684174, 4.74803628912347, 4.76726706436959, 5.67983273376747, 5.33390925673613, 0, 0, 5.1108560844243, 0, 3.08840424440941, 0, 0, 4.50569057276674, 4.66942619676803, 4.76247163597859, 0, 0, 0, 0, 4.99845159291209, 4.99845159291209, 0, 0, 5.53467284838857, 4.22725649496332, 0, 4.62434881411479, 4.22725649496332, 0, 0, 0, 0, 0, 0, 4.62434881411479, 0, 0, 0, 6.21951483913015, 4.78260745120908, 0, 5.61931853978413, 0, 4.29125193071298, 0, 4.33926365795236, 0, 0, 0, 4.66238644547969, 4.5446052005862, 0, 5.19334452699367, 0, 0, 0, 0, 5.11144100764418, 0, 0, 5.19334452699367, 0, 0, 5.74780111248537, 0, 4.7055183345893, 0, 4.07165458324898, 0, 4.63886620569823, 0, 0, 4.86745621720887, 4.46879251920029, 5.04721600106418, 0, 0, 4.39100983020327, 5.53003753299194, 0, 4.33926365795236, 4.56305517742098, 0, 5.65878431143908, 4.64828823133551, 0, 5.12413202499285, 0, 0, 4.10664589052559, 0, 0, 0, 0, 0, 0, 0, 4.21967083832428, 0, 5.10707237571521, 0, 5.14370675653711, 0, 4.68642392575495, 4.42573704905238, 0, 0, 0, 0, 4.07165458324898, 0, 4.52347712814066, 0, 5.51827119446648, 5.47350720409147, 0, 5.1570174138768, 0, 0, 4.07236669574765, 0, 0, 4.7990672081384, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 4.884846781979, 0, 0, 0, 0, 4.5235034137663, 0, 0, 0, 0, 0, 5.12560202092812, 0, 5.25776147359819, 0, 0, 0, 0, 0, 4.83387324388568, 0, 0, 0, 0, 0, 3.34706178165003, 4.80127633477391, 0, 0, 0, 0, 0, 5.160057914294, 0, 0, 0, 0, 4.04892584252096, 4.85914167699424, 4.64277865104544, 4.15836761122694, 0, 5.36774651080398, 0, 0, 4.69825600766589, 3.39084573952066, 0, 4.89676443793737, 0, 3.08840424440941, 0, 0, 0, 4.62186501905693, 3.60726976753607, 0, 0, 0, 4.74043491710974, 4.49716217235633, 0, 0, 0, 0, 5.19334452699367, 0, 0, 0, 5.35423454179863, 0, 4.77664916956399, 3.61595654505816, 0, 5.11610741471868, 0, 0, 4.32728815974203, 0, 4.70912459505171, 0, 0, 0, 0, 0, 0, 3.3457944191942, 0, 0, 0, 0, 4.58288705273542, 5.24140438986225, 0, 0, 0, 0, 3.88593701386777, 0, 0, 4.04738859925053, 0, 5.79838345525049, 4.79010521948074, 0, 0, 4.42083205457769, 0, 4.30993989352961, 4.1284816161703, 5.25422570349852, 0, 0, 0, 0, 3.58475184409779, 0, 4.25827651245211, 4.7577540885072, 0, 4.67625737716732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59785873273209, 4.07165458324898, 0, 0, 0, 0, 0, 0, 0, 0, 4.84713376647489, 5.73745890024692, 0, 0, 0, 5.66540912546717, 0, 4.86388479634919, 4.47191349494482, 0, 4.86926607540753, 3.58475184409779, 0, 4.31167370817058, 5.36003743637899, 5.51283979854248, 0, 6.3072839060449, 0, 4.1290048107316, 0, 0, 0, 4.36391942896167, 0, 3.76988385024473, 0, 0, 4.85669186247291, 4.49190483512985, 0, 0, 0, 4.68585783885858, 5.32757781675594, 4.68986114974663, 0, 5.27792648060271, 0, 0, 4.13946901623151, 4.84131809231602, 0, 5.84250940544768, 0, 4.29324547337354, 0, 3.54527199062208, 5.60348909478433, 0, 5.07726252362091, 0, 0, 0, 4.29324547337354, 4.84237694862251, 0, 0, 0, 0, 5.22978387204385, 0, 4.22863684380868, 0, 4.61425048429258, 0, 0, 0, 0, 4.63813573323897, 0, 0, 0, 0, 0, 5.12023974854408, 4.69981829554092, 0, 0, 3.96232013129067, 3.52480227011357, 0, 4.53039313028758, 5.36774651080398, 4.60690480556876, 0, 5.43999342872825, 0, 0, 4.95451233379668, 3.76438600190667, 4.26333578266713, 0, 4.55232531716673, 0, 0, 5.57041513154971, 5.04484623147216, 4.53478694772284, 5.28494779936496, 5.01693219668386, 3.70314434961049, 0, 4.4653514153011, 4.51432204818341, 4.56009698259212, 0, 0, 4.29324547337354, 6.08493100169216, 0, 3.84946149531937, 4.55230873121526, 0, 0, 5.14335698681643, 0, 0, 0, 0, 4.58595099106456, 4.69744179171063, 5.30242614721084, 5.5643803790549, 4.38050462468806, 0, 6.44014395380952, 0, 0, 0, 5.26474315849566, 4.85584599927583, 3.92264183975476, 3.08840424440941, 0, 0, 0, 0, 0, 0, 4.5446052005862, 4.49867809138072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.35841132059817, 4.29324547337354, 0, 0, 0, 3.92264183975476, 0, 0, 0, 6.01011624405031, 4.50011610270839, 0, 0, 0, 0, 0, 4.5446052005862, 0, 0, 0, 0, 0, 0, 4.90917323454674, 0, 4.07165458324898, 4.91088091003882, 0, 5.65126354304392, 0, 0, 0, 0, 3.41653801180655, 5.02383185250756, 0, 0, 5.40426070147056, 0, 4.98412242854925, 5.78214134368246, 5.08688827549532, 4.60620768805788, 0, 3.92264183975476, 0, 0, 4.22441594942276, 0, 0, 4.18981842087419, 4.41035009595542, 0, 4.04443235322857, 4.84713376647489, 5.50046544695822, 0, 0, 0, 4.74474897925142, 0, 4.99254966308555, 0, 0, 0, 0, 0, 6.434963516161, 5.65207737549816, 0, 0, 5.40519841661383, 4.5446052005862, 0, 5.36186261430798, 0, 4.38050462468806, 0, 0, 0, 4.81913040789207, 4.09928418046554, 4.88215787709743, 6.21951483913015, 0, 4.48481037272562, 0, 0, 0, 0, 0, 4.5446052005862, 3.58475184409779, 5.29603230413446, 4.21701689218848, 4.17660530186524, 5.21400702776104, 3.42732561175211, 0, 4.55542168930457, 0, 0, 0, 0, 4.54866970987183, 0, 0, 5.28039701851747, 5.41993634393776, 0, 4.74133078672761, 4.75687943510011, 0, 0, 0, 0, 4.39955114326686, 5.27358834023212, 4.5669756529141, 4.9759457525241, 3.89326535001852, 5.31462430211876, 4.72202319875715, 0, 5.38695112076559, 0, 3.89700334539345, 3.67856534568568, 0, 0, 0, 0, 0, 4.93466699780743, 3.72334667652189, 0, 3.92264183975476, 0, 4.33926365795236, 4.01190174316327, 0, 0, 0, 0, 0, 0, 5.06292492954673, 5.44516689179994, 0, 0, 5.57428379256295, 0, 4.48523325714668, 0, 4.24684542568535, 4.74133078672761, 3.91079019238764, 0, 4.48523325714668, 3.83478864566511, 4.42767817273019, 4.62533168329173, 0, 0, 0, 5.66443431573979, 0, 4.07165458324898, 6.34476620622866, 0, 0, 0, 4.74043491710974, 0, 5.24973641061837, 3.89648682817166, 5.42984297823385, 4.94654352851211, 0, 5.39249236749112, 0, 0, 0, 4.24119248281048, 4.84039356810966, 5.21095252926159, 4.39926018075244, 4.8661783604112, 4.84713376647489, 0, 0, 5.6401157843335, 0, 0, 3.87482237405972, 0, 0, 0, 0, 5.51827119446648, 6.21951483913015, 3.33408199411394, 0, 5.51934486271032, 4.40490312214513, 0, 4.5446052005862, 0, 4.87263832584576, 0, 0, 6.59943928500523, 0, 0, 0, 5.35093802844997, 0, 5.24140438986225, 4.21564624261625, 0, 0, 3.8393224031938, 0, 0, 0, 0, 0, 0, 4.22423247707574, 0, 0, 0, 4.31511637214836, 6.44266670765523, 3.42845906532466, 0, 4.41035009595542, 0, 0, 0, 0, 0, 0, 4.5446052005862, 0, 4.6236345630258, 0, 0, 3.74056545101946, 0, 5.1108560844243, 0, 0, 0, 0, 4.65666750266804, 0, 0, 0, 0, 4.42332641725864, 0, 5.13979192553583, 0, 0, 5.31551469081168, 0, 0, 0, 0, 0, 5.45980510621828, 4.5446052005862, 4.72546025335497, 0, 4.81234830694186, 0, 0, 0, 5.55169762085876, 6.14943089913506, 3.41653801180655, 0, 4.269286190978, 5.27468260273865, 4.49408709756309, 0, 4.49136758829493, 0, 0, 4.5446052005862, 0, 0, 4.50446392083745, 5.79140843890437, 3.93665251167916, 3.28350214332539, 0, 4.89051044980043, 0, 0, 0, 0, 0, 0, 0, 4.65077231506732, 5.15612886274539, 0, 3.91406238230311, 0, 5.86372156207979, 5.68299659533049, 0, 0, 5.15612886274539, 0, 5.66992544137339, 0, 0, 6.06384931002383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.86368999783554, 0, 3.58475184409779, 0, 4.82055439233373, 0, 4.85421168778822, 0, 0, 0, 0, 0, 3.41653801180655, 0, 0, 0, 0, 0, 0, 5.20681227879862, 4.50651879329543, 0, 0, 0, 0, 0, 0, 0, 0, 4.04924321801926, 4.58466482716377, 0, 0, 0, 0, 0, 4.85243399397363, 3.81453902658666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.50079441010229, 0, 5.36395188348553, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 5.08314654283621, 0, 4.97832840314828, 0, 4.54914267404179, 0, 0, 0, 0, 5.16931459555937, 0, 0, 4.36809005278833, 5.24140438986225, 0, 4.86175317682268, 0, 0, 5.70255144824812, 0, 0, 0, 4.61167819487854, 0, 3.97734686199437, 4.46647508659293, 0, 0, 0, 0, 4.3915051987931, 4.02198640305586, 5.32200808519659, 0, 0, 0, 0, 0, 0, 4.58808556207911, 4.38036055806098, 0, 0, 4.2477296409552, 0, 7.04875931191986, 5.28020614597096, 0, 0, 0, 5.64492710128744, 5.31297081939636, 0, 5.92027610321489, 0, 0, 0, 4.5799001110863, 5.19107953392195, 0, 5.76914879061123, 0, 0, 0, 4.60460897032093, 5.72856453189238, 4.9313620593995, 4.55572874074827, 5.31937215100257, 0, 4.92776136173484, 0, 4.9274331379247, 5.61090153519716, 0, 0, 4.55572874074827, 4.63155812754724, 0, 0, 0, 0, 0, 0, 5.41252929660805, 4.86476603809665, 0, 0, 4.57510137993917, 5.80115125551186, 5.80115125551186, 0, 0, 0, 4.79447530907979, 5.7805172508112, 0, 4.80427798454113, 0, 4.39904481168002, 0, 4.88127948385489, 5.19197800428063, 0, 0, 5.35950350029299, 5.08597058872868, 5.3602485382648, 5.37638184997943, 4.57618733287019, 0, 4.30448167573554, 4.9313620593995, 4.7467434878128, 0, 0, 0, 4.49774775798938, 0, 0, 5.20551093132143, 4.91958381391295, 0, 5.563650238485, 0, 0, 0, 4.38747801900603, 0, 0, 5.47184827462, 0, 0, 0, 0, 6.8231741340509, 0, 4.49647981565392, 0, 4.63041404799857, 0, 0, 0, 4.22567775799672, 0, 5.54548414340213, 5.14872468151357, 3.93008266118622, 3.93008266118622, 5.3046285040396, 4.19322327372815, 4.43168054139015, 6.70299222946026, 4.43168054139015, 4.32467547269038, 4.32467547269038, 4.43168054139015, 0, 0, 0, 0, 0, 5.0976405203171, 0, 0, 4.93550764350809, 4.28739733718854, 4.55298892193113, 0, 4.37163861675582, 0, 0, 4.1210240830879, 4.71946288663214, 4.68026528939617, 0, 5.42053219602931, 4.47023873528705, 5.35075151128298, 0, 5.6343520367362, 0, 0, 0, 0, 5.32451512184451, 5.5434760889105, 5.33027299411247, 6.01283187053194, 0, 5.44465284282755, 0, 5.60447738663069, 4.05819432772927, 4.83843188134675, 5.50803101680629, 6.01283187053194, 5.75707815623697, 0, 0, 5.76691919422696, 0, 3.09725524527614, 0, 0, 4.65602993211273, 4.96715230869194, 5.0460270609084, 0, 0, 0, 0, 5.35075151128298, 5.35075151128298, 0, 0, 5.82638765873269, 4.33092775741833, 0, 5.33426726720189, 4.33092775741833, 0, 0, 0, 0, 0, 0, 5.33426726720189, 0, 0, 0, 6.4085059170199, 5.26148526435787, 0, 6.77189397463612, 0, 4.33309365234227, 0, 4.39306520312915, 0, 0, 0, 5.28987653716311, 4.70797731248539, 0, 5.29854930064539, 0, 0, 0, 0, 5.71935101333561, 0, 0, 5.29854930064539, 0, 0, 5.77761706213867, 0, 4.75419843168543, 0, 4.12545612842576, 0, 5.37331133484265, 0, 0, 4.97337652407054, 4.70683990433408, 6.09030310584464, 0, 0, 4.59267771146204, 5.74472828954025, 0, 4.39306520312915, 4.9594466010235, 0, 5.65878431143908, 5.33027299411247, 0, 5.15405393436842, 0, 0, 4.79271867779565, 0, 0, 0, 0, 0, 0, 0, 4.35830690668824, 0, 5.38472325370722, 0, 6.16295295944043, 0, 4.82105667516848, 4.54936121111849, 0, 0, 0, 0, 4.12545612842576, 0, 4.80602340533701, 0, 5.57358026729663, 5.48312574104513, 0, 5.26792998492256, 0, 0, 4.1952839825337, 0, 0, 5.03303423782249, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 5.57392840480265, 0, 0, 0, 0, 4.74622331562497, 0, 0, 0, 0, 0, 5.56616750491603, 0, 5.29670792683, 0, 0, 0, 0, 0, 4.99271395081408, 0, 0, 0, 0, 0, 3.41372504618776, 4.96285090245367, 0, 0, 0, 0, 0, 5.54550201403224, 0, 0, 0, 0, 4.13198736389855, 4.91507097210121, 4.70065323315218, 4.18161179637905, 0, 5.76551299474612, 0, 0, 5.00122572037286, 3.39527123995403, 0, 4.99916881046045, 0, 3.09725524527614, 0, 0, 0, 4.82450059374518, 3.66185287494411, 0, 0, 0, 5.28991528237199, 4.55646570202336, 0, 0, 0, 0, 5.29854930064539, 0, 0, 0, 5.97468587107694, 0, 5.17281500572016, 4.23359731002858, 0, 5.45563475931033, 0, 0, 4.52897666335624, 0, 4.87185152412934, 0, 0, 0, 0, 0, 0, 3.37577274353353, 0, 0, 0, 0, 5.10041650829154, 5.24140438986225, 0, 0, 0, 0, 3.95129473852242, 0, 0, 4.11976254800108, 0, 6.01420102457481, 4.92778612829905, 0, 0, 4.56377011384001, 0, 4.58742555968595, 4.47115871287075, 5.65748539315244, 0, 0, 0, 0, 3.60832473391076, 0, 4.51310522772913, 5.06103035286723, 0, 4.81917803006731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.66243764960628, 4.12545612842576, 0, 0, 0, 0, 0, 0, 0, 0, 5.08886396293006, 5.80402577087784, 0, 0, 0, 5.93115712317424, 0, 4.91648718317505, 4.6286839565979, 0, 5.03580666251931, 3.60832473391076, 0, 4.47372623083586, 5.66396960914285, 5.52342408043357, 0, 6.3072839060449, 0, 4.39263629341855, 0, 0, 0, 4.5461543147591, 0, 4.00929570759838, 0, 0, 5.16789386079396, 4.62735418855057, 0, 0, 0, 5.01703737427696, 5.6353715526086, 5.0796161097687, 0, 5.65024767075424, 0, 0, 4.21299645646799, 5.71469117325511, 0, 6.17772832844847, 0, 4.37172777575117, 0, 3.5532198105541, 6.9402822383012, 0, 5.9217945465382, 0, 0, 0, 4.37172777575117, 4.9069454539305, 0, 0, 0, 0, 5.30241986053923, 0, 4.38644400428626, 0, 4.91647000514191, 0, 0, 0, 0, 5.19218418054663, 0, 0, 0, 0, 0, 5.54651041134472, 4.83230580737543, 0, 0, 4.01551444343638, 3.8004288232462, 0, 5.24062714859501, 5.76551299474612, 4.67254124106144, 0, 6.07837140863533, 0, 0, 5.38839219122816, 3.80230215365203, 4.63740328603195, 0, 4.84593075750505, 0, 0, 5.88609925677352, 5.33210621460776, 4.75421003053851, 5.76484379748952, 5.89659709112448, 3.97408488565484, 0, 4.54225251749011, 4.58792163582769, 5.40296101260371, 0, 0, 4.37172777575117, 7.20232147520751, 0, 3.88094293727598, 4.85193539538581, 0, 0, 5.38302151981881, 0, 0, 0, 0, 5.02338495590354, 4.97314182720626, 5.36691203738778, 6.17926458658832, 4.6032812436626, 0, 6.44014395380952, 0, 0, 0, 5.66155241911599, 5.07481428379687, 3.96913521083557, 3.09725524527614, 0, 0, 0, 0, 0, 0, 4.70797731248539, 4.53867783270312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.68068903261977, 4.37172777575117, 0, 0, 0, 3.96913521083557, 0, 0, 0, 6.25236028863335, 4.5753207831737, 0, 0, 0, 0, 0, 4.70797731248539, 0, 0, 0, 0, 0, 0, 4.92758031518272, 0, 4.12545612842576, 5.01751268930306, 0, 5.65898556774226, 0, 0, 0, 0, 3.42538901267328, 5.12863713949509, 0, 0, 5.40426070147056, 0, 5.06580665006672, 6.21338130580672, 5.32882049337723, 4.74338227484255, 0, 3.96913521083557, 0, 0, 4.99239347343115, 0, 0, 4.31100039129807, 4.54919797955033, 0, 4.11328195095659, 5.08886396293006, 5.56001629968898, 0, 0, 0, 5.04957504841723, 0, 5.21164799965415, 0, 0, 0, 0, 0, 6.53611072336905, 5.70970640406628, 0, 0, 5.45984600559831, 4.70797731248539, 0, 5.66053003067177, 0, 4.6032812436626, 0, 0, 0, 5.03537990117429, 4.11830704728802, 5.00602244294408, 6.4085059170199, 0, 4.60651061546597, 0, 0, 0, 0, 0, 4.70797731248539, 3.60832473391076, 5.76154401639335, 4.27793745933681, 4.39439226054663, 5.25017208436427, 3.45524996202877, 0, 5.24677064579828, 0, 0, 0, 0, 4.72170868076293, 0, 0, 5.4880782540335, 5.76456705787329, 0, 4.77077456462009, 4.841015176395, 0, 0, 0, 0, 4.5212513860072, 5.2830036814102, 4.755199365565, 5.14934061466492, 4.00504428048212, 5.63828357307054, 4.83375744666124, 0, 5.60282829854662, 0, 4.02330675409165, 3.69328723463192, 0, 0, 0, 0, 0, 5.00448478635041, 4.20025154332949, 0, 3.96913521083557, 0, 4.39306520312915, 4.04364205144183, 0, 0, 0, 0, 0, 0, 6.23000829100607, 5.83574947081631, 0, 0, 5.87382269094248, 0, 4.76317930417855, 0, 4.45182138679726, 4.77077456462009, 3.91964119325437, 0, 4.76317930417855, 3.84363964653184, 4.49769249551306, 4.78506663979837, 0, 0, 0, 5.69425658902292, 0, 4.12545612842576, 6.34815283918815, 0, 0, 0, 5.28991528237199, 0, 5.3132574731509, 3.91868336469722, 5.84086615101475, 5.0482983374706, 0, 5.54979946161498, 0, 0, 0, 4.26909284304059, 4.9016554789553, 5.38319730459238, 4.41643187636514, 5.85921258011345, 5.08886396293006, 0, 0, 5.70404502673787, 0, 0, 3.91260010440766, 0, 0, 0, 0, 5.57358026729663, 6.4085059170199, 3.33850749454731, 0, 5.74295033626082, 4.40490312214513, 0, 4.70797731248539, 0, 5.22015947491138, 0, 0, 6.68420139122128, 0, 0, 0, 5.37309470532579, 0, 5.24140438986225, 4.40005844316325, 0, 0, 3.92723752749359, 0, 0, 0, 0, 0, 0, 4.54816510994007, 0, 0, 0, 4.48841506742005, 6.54452980998457, 3.43435973256915, 0, 4.54919797955033, 0, 0, 0, 0, 0, 0, 4.70797731248539, 0, 4.73570225663244, 0, 0, 3.77684008905211, 0, 5.76691919422696, 0, 0, 0, 0, 5.43134497884026, 0, 0, 0, 0, 4.58127261800614, 0, 5.2432682866376, 0, 0, 5.85458625075546, 0, 0, 0, 0, 0, 5.45980510621828, 4.70797731248539, 4.77812105375205, 0, 5.04380114925574, 0, 0, 0, 5.64448746911029, 6.19983936442748, 3.42538901267328, 0, 4.44894370843512, 5.79730383363085, 4.69161780331095, 0, 5.27300130310585, 0, 0, 4.70797731248539, 0, 0, 4.5089794314501, 5.82639327749719, 3.97973596412231, 3.56912563841365, 0, 5.39454333294401, 0, 0, 0, 0, 0, 0, 0, 4.76597454786299, 5.48414981820747, 0, 4.1147740786264, 0, 5.89140780104357, 5.72067257535352, 0, 0, 5.48414981820747, 0, 5.70760142139642, 0, 0, 6.29537545475406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.06762901757681, 0, 3.60832473391076, 0, 5.57974701785545, 0, 5.01248831051847, 0, 0, 0, 0, 0, 3.42538901267328, 0, 0, 0, 0, 0, 0, 5.42055352163528, 4.90048116201781, 0, 0, 0, 0, 0, 0, 0, 0, 4.12224181396152, 4.72247810373009, 0, 0, 0, 0, 0, 4.90511322208062, 3.8321237025774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.58238271712997, 0, 5.61728951257107, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 5.18111223181278, 0, 5.13995698613151, 0, 4.69341066687911, 0, 0, 0, 0, 5.32712175603695, 0, 0, 4.56601253623096, 5.24140438986225, 0, 4.96690654975619, 0, 0, 5.82766293014659, 0, 0, 0, 4.65902657336049, 0, 4.00789727353636, 4.58360457071026, 0, 0, 0, 0, 4.69961409468953, 4.21212244361495, 5.55447993054684, 0, 0, 0, 0, 0, 0, 5.37078593035236, 4.44317393860099, 0, 0, 4.27626074928957, 0, 7.04875931191986, 5.47867612519084, 0, 0, 0, 5.64694347314414, 5.68648655306865, 0, 6.28513400787422, 0, 0, 0, 4.68883257303432, 5.20652358331862, 0, 5.97173523410365, 0, 0, 0, 4.72973426064922, 5.85673440852228, 5.24243031072283, 4.57900133692927, 5.52682537551514, 0, 4.93658653281865, 0, 5.53133142169316, 5.92774694484866, 0, 0, 4.57900133692927, 5.21624577345214, 0, 0, 0, 0, 0, 0, 5.98708163489918, 5.2019356601785, 0, 0, 4.97216862014078, 5.83895221574473, 5.83895221574473, 0, 0, 0, 5.38784764241508, 5.80192951992705, 0, 5.15061155795185, 0, 4.92659387279814, 0, 4.91877768235145, 5.25157971638882, 0, 0, 5.36998330961081, 5.85997362889364, 5.60994472118095, 5.54884190425618, 4.91780770420125, 0, 4.41449678254794, 5.24243031072283, 4.77719937456903, 0, 0, 0, 4.64259187783054, 0, 0, 5.33455071048185, 5.04891675598559, 0, 5.563650238485, 0, 0, 0, 4.47181812794453, 0, 0, 5.97347344970587, 0, 0, 0, 0, 6.86551896304079, 0, 4.52193940460828, 0, 4.67667641593985, 0, 0, 0, 4.26977701962503, 0, 5.61930322507552, 5.88386844662172, 3.99196200339905, 3.99196200339905, 5.73866199358135, 4.24154897647298, 4.86075658586363, 6.70299222946026, 4.86075658586363, 4.44885289590563, 4.44885289590563, 4.86075658586363, 0, 0, 0, 0, 0, 5.99009515855683, 0, 0, 6.4448989910341, 4.54490718044105, 5.06289198648224, 0, 4.61085036958552, 0, 0, 4.22970084972604, 5.04703226132422, 4.79039157739965, 0, 5.51005087363519, 4.44753141102122, 4.99845159291209, 0, 5.34401590408034, 0, 0, 0, 0, 4.83101957587157, 5.35483227176722, 4.64828823133551, 5.67983273376747, 0, 4.50275270048942, 0, 5.08026790650122, 4.01887317684174, 4.74803628912347, 4.76726706436959, 5.67983273376747, 5.33390925673613, 0, 0, 5.1108560844243, 0, 3.08840424440941, 0, 0, 4.50569057276674, 4.66942619676803, 4.76247163597859, 0, 0, 0, 0, 4.99845159291209, 4.99845159291209, 0, 0, 5.53467284838857, 4.22725649496332, 0, 4.62434881411479, 4.22725649496332, 0, 0, 0, 0, 0, 0, 4.62434881411479, 0, 0, 0, 6.21951483913015, 4.78260745120908, 0, 5.61931853978413, 0, 4.29125193071298, 0, 4.33926365795236, 0, 0, 0, 4.66238644547969, 4.5446052005862, 0, 5.19334452699367, 0, 0, 0, 0, 5.11144100764418, 0, 0, 5.19334452699367, 0, 0, 5.74780111248537, 0, 4.7055183345893, 0, 4.07165458324898, 0, 4.63886620569823, 0, 0, 4.86745621720887, 4.46879251920029, 5.04721600106418, 0, 0, 4.39100983020327, 5.53003753299194, 0, 4.33926365795236, 4.56305517742098, 0, 5.65878431143908, 4.64828823133551, 0, 5.12413202499285, 0, 0, 4.10664589052559, 0, 0, 0, 0, 0, 0, 0, 4.21967083832428, 0, 5.10707237571521, 0, 5.14370675653711, 0, 4.68642392575495, 4.42573704905238, 0, 0, 0, 0, 4.07165458324898, 0, 4.52347712814066, 0, 5.51827119446648, 5.47350720409147, 0, 5.1570174138768, 0, 0, 4.07236669574765, 0, 0, 4.7990672081384, 0, 0, 0, 5.24140438986225, 0, 0, 0, 0, 0, 0, 4.884846781979, 0, 0, 0, 0, 4.5235034137663, 0, 0, 0, 0, 0, 5.12560202092812, 0, 5.25776147359819, 0, 0, 0, 0, 0, 4.83387324388568, 0, 0, 0, 0, 0, 3.34706178165003, 4.80127633477391, 0, 0, 0, 0, 0, 5.160057914294, 0, 0, 0, 0, 4.04892584252096, 4.85914167699424, 4.64277865104544, 4.15836761122694, 0, 5.36774651080398, 0, 0, 4.69825600766589, 3.39084573952066, 0, 4.89676443793737, 0, 3.08840424440941, 0, 0, 0, 4.62186501905693, 3.60726976753607, 0, 0, 0, 4.74043491710974, 4.49716217235633, 0, 0, 0, 0, 5.19334452699367, 0, 0, 0, 5.35423454179863, 0, 4.77664916956399, 3.61595654505816, 0, 5.11610741471868, 0, 0, 4.32728815974203, 0, 4.70912459505171, 0, 0, 0, 0, 0, 0, 3.3457944191942, 0, 0, 0, 0, 4.58288705273542, 5.24140438986225, 0, 0, 0, 0, 3.88593701386777, 0, 0, 4.04738859925053, 0, 5.79838345525049, 4.79010521948074, 0, 0, 4.42083205457769, 0, 4.30993989352961, 4.1284816161703, 5.25422570349852, 0, 0, 0, 0, 3.58475184409779, 0, 4.25827651245211, 4.7577540885072, 0, 4.67625737716732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59785873273209, 4.07165458324898, 0, 0, 0, 0, 0, 0, 0, 0, 4.84713376647489, 5.73745890024692, 0, 0, 0, 5.66540912546717, 0, 4.86388479634919, 4.47191349494482, 0, 4.86926607540753, 3.58475184409779, 0, 4.31167370817058, 5.36003743637899, 5.51283979854248, 0, 6.3072839060449, 0, 4.1290048107316, 0, 0, 0, 4.36391942896167, 0, 3.76988385024473, 0, 0, 4.85669186247291, 4.49190483512985, 0, 0, 0, 4.68585783885858, 5.32757781675594, 4.68986114974663, 0, 5.27792648060271, 0, 0, 4.13946901623151, 4.84131809231602, 0, 5.84250940544768, 0, 4.29324547337354, 0, 3.54527199062208, 5.60348909478433, 0, 5.07726252362091, 0, 0, 0, 4.29324547337354, 4.84237694862251, 0, 0, 0, 0, 5.22978387204385, 0, 4.22863684380868, 0, 4.61425048429258, 0, 0, 0, 0, 4.63813573323897, 0, 0, 0, 0, 0, 5.12023974854408, 4.69981829554092, 0, 0, 3.96232013129067, 3.52480227011357, 0, 4.53039313028758, 5.36774651080398, 4.60690480556876, 0, 5.43999342872825, 0, 0, 4.95451233379668, 3.76438600190667, 4.26333578266713, 0, 4.55232531716673, 0, 0, 5.57041513154971, 5.04484623147216, 4.53478694772284, 5.28494779936496, 5.01693219668386, 3.70314434961049, 0, 4.4653514153011, 4.51432204818341, 4.56009698259212, 0, 0, 4.29324547337354, 6.08493100169216, 0, 3.84946149531937, 4.55230873121526, 0, 0, 5.14335698681643, 0, 0, 0, 0, 4.58595099106456, 4.69744179171063, 5.30242614721084, 5.5643803790549, 4.38050462468806, 0, 6.44014395380952, 0, 0, 0, 5.26474315849566, 4.85584599927583, 3.92264183975476, 3.08840424440941, 0, 0, 0, 0, 0, 0, 4.5446052005862, 4.49867809138072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.35841132059817, 4.29324547337354, 0, 0, 0, 3.92264183975476, 0, 0, 0, 6.01011624405031, 4.50011610270839, 0, 0, 0, 0, 0, 4.5446052005862, 0, 0, 0, 0, 0, 0, 4.90917323454674, 0, 4.07165458324898, 4.91088091003882, 0, 5.65126354304392, 0, 0, 0, 0, 3.41653801180655, 5.02383185250756, 0, 0, 5.40426070147056, 0, 4.98412242854925, 5.78214134368246, 5.08688827549532, 4.60620768805788, 0, 3.92264183975476, 0, 0, 4.22441594942276, 0, 0, 4.18981842087419, 4.41035009595542, 0, 4.04443235322857, 4.84713376647489, 5.50046544695822, 0, 0, 0, 4.74474897925142, 0, 4.99254966308555, 0, 0, 0, 0, 0, 6.434963516161, 5.65207737549816, 0, 0, 5.40519841661383, 4.5446052005862, 0, 5.36186261430798, 0, 4.38050462468806, 0, 0, 0, 4.81913040789207, 4.09928418046554, 4.88215787709743, 6.21951483913015, 0, 4.48481037272562, 0, 0, 0, 0, 0, 4.5446052005862, 3.58475184409779, 5.29603230413446, 4.21701689218848, 4.17660530186524, 5.21400702776104, 3.42732561175211, 0, 4.55542168930457, 0, 0, 0, 0, 4.54866970987183, 0, 0, 5.28039701851747, 5.41993634393776, 0, 4.74133078672761, 4.75687943510011, 0, 0, 0, 0, 4.39955114326686, 5.27358834023212, 4.5669756529141, 4.9759457525241, 3.89326535001852, 5.31462430211876, 4.72202319875715, 0, 5.38695112076559, 0, 3.89700334539345, 3.67856534568568, 0, 0, 0, 0, 0, 4.93466699780743, 3.72334667652189, 0, 3.92264183975476, 0, 4.33926365795236, 4.01190174316327, 0, 0, 0, 0, 0, 0, 5.06292492954673, 5.44516689179994, 0, 0, 5.57428379256295, 0, 4.48523325714668, 0, 4.24684542568535, 4.74133078672761, 3.91079019238764, 0, 4.48523325714668, 3.83478864566511, 4.42767817273019, 4.62533168329173, 0, 0, 0, 5.66443431573979, 0, 4.07165458324898, 6.34476620622866, 0, 0, 0, 4.74043491710974, 0, 5.24973641061837, 3.89648682817166, 5.42984297823385, 4.94654352851211, 0, 5.39249236749112, 0, 0, 0, 4.24119248281048, 4.84039356810966, 5.21095252926159, 4.39926018075244, 4.8661783604112, 4.84713376647489, 0, 0, 5.6401157843335, 0, 0, 3.87482237405972, 0, 0, 0, 0, 5.51827119446648, 6.21951483913015, 3.33408199411394, 0, 5.51934486271032, 4.40490312214513, 0, 4.5446052005862, 0, 4.87263832584576, 0, 0, 6.59943928500523, 0, 0, 0, 5.35093802844997, 0, 5.24140438986225, 4.21564624261625, 0, 0, 3.8393224031938, 0, 0, 0, 0, 0, 0, 4.22423247707574, 0, 0, 0, 4.31511637214836, 6.44266670765523, 3.42845906532466, 0, 4.41035009595542, 0, 0, 0, 0, 0, 0, 4.5446052005862, 0, 4.6236345630258, 0, 0, 3.74056545101946, 0, 5.1108560844243, 0, 0, 0, 0, 4.65666750266804, 0, 0, 0, 0, 4.42332641725864, 0, 5.13979192553583, 0, 0, 5.31551469081168, 0, 0, 0, 0, 0, 5.45980510621828, 4.5446052005862, 4.72546025335497, 0, 4.81234830694186, 0, 0, 0, 5.55169762085876, 6.14943089913506, 3.41653801180655, 0, 4.269286190978, 5.27468260273865, 4.49408709756309, 0, 4.49136758829493, 0, 0, 4.5446052005862, 0, 0, 4.50446392083745, 5.79140843890437, 3.93665251167916, 3.28350214332539, 0, 4.89051044980043, 0, 0, 0, 0, 0, 0, 0, 4.65077231506732, 5.15612886274539, 0, 3.91406238230311, 0, 5.86372156207979, 5.68299659533049, 0, 0, 5.15612886274539, 0, 5.66992544137339, 0, 0, 6.06384931002383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.86368999783554, 0, 3.58475184409779, 0, 4.82055439233373, 0, 4.85421168778822, 0, 0, 0, 0, 0, 3.41653801180655, 0, 0, 0, 0, 0, 0, 5.20681227879862, 4.50651879329543, 0, 0, 0, 0, 0, 0, 0, 0, 4.04924321801926, 4.58466482716377, 0, 0, 0, 0, 0, 4.85243399397363, 3.81453902658666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.50079441010229, 0, 5.36395188348553, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 5.08314654283621, 0, 4.97832840314828, 0, 4.54914267404179, 0, 0, 0, 0, 5.16931459555937, 0, 0, 4.36809005278833, 5.24140438986225, 0, 4.86175317682268, 0, 0, 5.70255144824812, 0, 0, 0, 4.61167819487854, 0, 3.97734686199437, 4.46647508659293, 0, 0, 0, 0, 4.3915051987931, 4.02198640305586, 5.32200808519659, 0, 0, 0, 0, 0, 0, 4.58808556207911, 4.38036055806098, 0, 0, 4.2477296409552, 0, 7.04875931191986, 5.28020614597096, 0, 0, 0, 5.64492710128744, 5.31297081939636, 0, 5.92027610321489, 0, 0, 0, 4.5799001110863, 5.19107953392195, 0, 5.76914879061123, 0, 0, 0, 4.60460897032093, 5.72856453189238, 4.9313620593995, 4.55572874074827, 5.31937215100257, 0, 4.92776136173484, 0, 4.9274331379247, 5.61090153519716, 0, 0, 4.55572874074827, 4.63155812754724, 0, 0, 0, 0, 0, 0, 5.41252929660805, 4.86476603809665, 0, 0, 4.57510137993917, 5.80115125551186, 5.80115125551186, 0, 0, 0, 4.79447530907979, 5.7805172508112, 0, 4.80427798454113, 0, 4.39904481168002, 0, 4.88127948385489, 5.19197800428063, 0, 0, 5.35950350029299, 5.08597058872868, 5.3602485382648, 5.37638184997943, 4.57618733287019, 0, 4.30448167573554, 4.9313620593995, 4.7467434878128, 0, 0, 0, 4.49774775798938, 0, 0, 5.20551093132143, 4.91958381391295, 0, 5.563650238485, 0, 0, 0, 4.38747801900603, 0, 0, 5.47184827462, 0, 0, 0, 0, 6.8231741340509, 0, 4.49647981565392, 0, 4.63041404799857, 0, 0, 0, 4.22567775799672, 0, 5.54548414340213, 5.14872468151357, 3.93008266118622, 3.93008266118622, 5.3046285040396, 4.19322327372815, 4.43168054139015, 6.70299222946026, 4.43168054139015, 4.32467547269038, 4.32467547269038, 4.43168054139015, 0, 0, 0, 0, 0, 5.0976405203171, 0, 0, 4.93550764350809, 4.28739733718854, 4.55298892193113, 0, 4.37163861675582, 0, 0, 4.1210240830879, 4.71946288663214, 4.68026528939617, 0, 5.42053219602931, 0.994920332982088, 0.934158796642302, 1, 0.948470359898909, 1, 1, 1, 1, 0.907316340609438, 0.965970121613647, 0.872054440076476, 0.944618585063645, 1, 0.827004554830537, 1, 0.906465947854485, 0.990310678170621, 0.981317171670479, 0.865512022322233, 0.944618585063645, 0.926495891141863, 1, 1, 0.886236812463158, 1, 0.997142308216209, 1, 1, 0.967710826275172, 0.940061006101439, 0.943806202085891, 1, 1, 1, 1, 0.934158796642302, 0.934158796642302, 1, 1, 0.949932131634446, 0.976062574057618, 1, 0.866913595152595, 0.976062574057618, 1, 1, 1, 1, 1, 1, 0.866913595152595, 1, 1, 1, 0.970509338629489, 0.908984290730076, 1, 0.829800135801163, 1, 0.990343683985072, 1, 0.987753073835903, 1, 1, 1, 0.881379066737174, 0.965298874430441, 1, 0.98014460795167, 1, 1, 1, 1, 0.893709967394205, 1, 1, 0.98014460795167, 1, 1, 0.994839403627373, 1, 0.989760608902712, 1, 0.986958643237999, 1, 0.863316103725092, 1, 1, 0.978702536124294, 0.949425221598338, 0.828729853563536, 1, 1, 0.956089259049146, 0.962628213950657, 1, 0.987753073835903, 0.920073456679479, 1, 1, 0.872054440076476, 1, 0.994194490442555, 1, 1, 0.856851020601608, 1, 1, 1, 1, 1, 1, 1, 0.968190384171612, 1, 0.948437298462673, 1, 0.834617234690711, 1, 0.972074016448102, 0.972826039452754, 1, 1, 1, 1, 0.986958643237999, 1, 0.941209966459466, 1, 0.990076562967133, 0.998245793110004, 1, 0.978945701373555, 1, 1, 0.970701080714011, 1, 1, 0.953513721816977, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.876374152522318, 1, 1, 1, 1, 0.953074289377523, 1, 1, 1, 1, 1, 0.920849402466095, 1, 0.99264704534027, 1, 1, 1, 1, 1, 0.968185498209344, 1, 1, 1, 1, 1, 0.980471987744833, 0.967443195281189, 1, 1, 1, 1, 1, 0.930494281894962, 1, 1, 1, 1, 0.979897924639532, 0.988620857069118, 0.987687970323238, 0.994441333561322, 1, 0.93100935089304, 1, 1, 0.939420908064037, 0.998696569398849, 1, 0.97951572023157, 1, 0.997142308216209, 1, 1, 1, 0.957998642398146, 0.98509412877248, 1, 1, 1, 0.896126811880461, 0.986984752317855, 1, 1, 1, 1, 0.98014460795167, 1, 1, 1, 0.896153313719491, 1, 0.923413878957959, 0.854109703937277, 1, 0.937765748703719, 1, 1, 0.955467091441193, 1, 0.96659854507641, 1, 1, 1, 1, 1, 1, 0.991119566802369, 1, 1, 1, 1, 0.898531922890062, 1, 1, 1, 1, 1, 0.983459162381014, 1, 1, 0.982432495099588, 1, 0.964115338273121, 0.97206029132887, 1, 1, 0.968679829242745, 1, 0.93951167979817, 0.92335832416013, 0.928721037416729, 1, 1, 1, 1, 0.99346708194209, 1, 0.943535835656717, 0.94007618148581, 1, 0.970343354819372, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.986149108743654, 0.986958643237999, 1, 1, 1, 1, 1, 1, 1, 1, 0.952498200341754, 0.988530914014041, 1, 1, 1, 0.955194578024458, 1, 0.989300818884289, 0.966130661949901, 1, 0.966928717031311, 0.99346708194209, 1, 0.963776835169683, 0.946339370841035, 0.998083746289083, 1, 1, 1, 0.939983311825304, 1, 1, 1, 0.959914496257683, 1, 0.940285807080799, 1, 1, 0.93978165831114, 0.970728552883231, 1, 1, 1, 0.933989023658389, 0.945381820350393, 0.923270784327081, 1, 0.934105332748745, 1, 1, 0.982547471616407, 0.847170554897787, 1, 0.94573750978056, 1, 0.98204776088462, 1, 0.997763206231034, 0.807386342857999, 1, 0.857385794748486, 1, 1, 1, 0.98204776088462, 0.986841405531365, 1, 1, 1, 1, 0.986301351004674, 1, 0.964023897187932, 1, 0.938529164108954, 1, 1, 1, 1, 0.893291834795942, 1, 1, 1, 1, 1, 0.923146152952539, 0.972582962023575, 1, 1, 0.986752802686925, 0.927474880874839, 1, 0.864475377055235, 0.93100935089304, 0.985952732762231, 1, 0.89497548981621, 1, 1, 0.919478790326769, 0.990028106601432, 0.91933686153811, 1, 0.939411961286571, 1, 1, 0.946367855611587, 0.946126357657951, 0.953846573582948, 0.91675472658365, 0.850818212462798, 0.931823163359606, 1, 0.983069831126099, 0.983957967575225, 0.843999609094827, 1, 1, 0.98204776088462, 0.844856901019799, 1, 0.99188819767118, 0.938245949347245, 1, 1, 0.9554776936856, 1, 1, 1, 1, 0.912920477192394, 0.944562201305546, 0.987984544980855, 0.900492332231899, 0.951604821173758, 1, 1, 1, 1, 1, 0.929911580562157, 0.95685196102246, 0.988286271791929, 0.997142308216209, 1, 1, 1, 1, 1, 1, 0.965298874430441, 0.991186917689071, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.943267848289, 0.98204776088462, 1, 1, 1, 0.988286271791929, 1, 1, 1, 0.961255584547257, 0.983562970985142, 1, 1, 1, 1, 1, 0.965298874430441, 1, 1, 1, 1, 1, 1, 0.996264478819499, 1, 0.986958643237999, 0.978748079802256, 1, 0.998635440114505, 1, 1, 1, 1, 0.997416059655127, 0.979564690552889, 1, 1, 1, 1, 0.983875377178797, 0.930594962565513, 0.95459929299878, 0.971080849310376, 1, 0.988286271791929, 1, 1, 0.846170473522277, 1, 1, 0.971890058124678, 0.969478601674612, 1, 0.983261639112289, 0.952498200341754, 0.989289446375527, 1, 1, 1, 0.939633322360194, 1, 0.957959874384621, 1, 1, 1, 1, 1, 0.984524863257531, 0.989906831544423, 1, 1, 0.98999100177396, 0.965298874430441, 1, 0.94723684624135, 1, 0.951604821173758, 1, 1, 1, 0.957053986486345, 0.995380901277139, 0.975256889624768, 0.970509338629489, 1, 0.97358081791199, 1, 1, 1, 1, 1, 0.965298874430441, 0.99346708194209, 0.919203652539255, 0.985759360035672, 0.950439800143307, 0.993111643576231, 0.99191828360219, 1, 0.868233432874112, 1, 1, 1, 1, 0.963352467805545, 1, 1, 0.962157748868942, 0.940215681338146, 1, 0.993828302407991, 0.982620227735466, 1, 1, 1, 1, 0.97308261975501, 0.998217805296784, 0.960417282603557, 0.966326783346396, 0.972090463266952, 0.942596134664522, 0.976884597719881, 1, 0.96146996369012, 1, 0.968607064681371, 0.996013879232518, 1, 1, 1, 1, 1, 0.98604895578194, 0.886458022361784, 1, 0.988286271791929, 1, 0.987753073835903, 0.992150564299515, 1, 1, 1, 1, 1, 1, 0.812667446503371, 0.933070708232144, 1, 1, 0.949004436439421, 1, 0.941646948543794, 1, 0.953956831754347, 0.993828302407991, 0.997741884925089, 1, 0.941646948543794, 0.997697234475475, 0.984433279319848, 0.966618028852912, 1, 1, 1, 0.994762745089391, 1, 0.986958643237999, 0.99946651678917, 1, 1, 1, 0.896126811880461, 1, 0.988044798722156, 0.994335715734134, 0.929629756588501, 0.979843740968473, 1, 0.971655355258893, 1, 1, 1, 0.993464569346251, 0.987501791770423, 0.968003257992448, 0.99611186222421, 0.830517461839042, 0.952498200341754, 1, 1, 0.988792297026987, 1, 1, 0.990344597111936, 1, 1, 1, 1, 0.990076562967133, 0.970509338629489, 0.998674407518751, 1, 0.961064355347345, 1, 1, 0.965298874430441, 1, 0.933427101080754, 1, 1, 0.98731903764489, 1, 1, 1, 0.99587636583925, 1, 1, 0.95808869292781, 1, 1, 0.977614003817106, 1, 1, 1, 1, 1, 1, 0.928777292592925, 1, 1, 1, 0.961389779539419, 0.984435382634528, 0.998281872691283, 1, 0.969478601674612, 1, 1, 1, 1, 1, 1, 0.965298874430441, 1, 0.976335570199817, 1, 1, 0.99039550598454, 1, 0.886236812463158, 1, 1, 1, 1, 0.857369126949171, 1, 1, 1, 1, 0.965523509749952, 1, 0.980264911989058, 1, 1, 0.90792320125539, 1, 1, 1, 1, 1, 1, 0.965298874430441, 0.988978763868753, 1, 0.954111425993066, 1, 1, 1, 0.983560978962337, 0.99186939171656, 0.997416059655127, 1, 0.959617938721838, 0.909850984890526, 0.957897102017036, 1, 0.851766826920652, 1, 1, 0.965298874430441, 1, 1, 0.998998551516746, 0.993995455348349, 0.989174293764323, 0.919973818793555, 1, 0.906566162873233, 1, 1, 1, 1, 1, 1, 1, 0.975828189672704, 0.940187455424166, 1, 0.951221697111913, 1, 0.995300573326655, 0.99341406460049, 1, 1, 0.940187455424166, 1, 0.993398981946814, 1, 1, 0.96322282183259, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.959756521435583, 1, 0.99346708194209, 1, 0.863937805228037, 1, 0.96842354277453, 1, 1, 1, 1, 1, 0.997416059655127, 1, 1, 1, 1, 1, 1, 0.960568373325059, 0.919607410844497, 1, 1, 1, 1, 1, 1, 1, 1, 0.98229152989157, 0.970817593318758, 1, 1, 1, 1, 1, 0.989260344109928, 0.99541124521139, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.982195221991677, 1, 0.954900378818184, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.981091764742125, 1, 0.968554487241949, 1, 0.96926158755819, 1, 1, 1, 1, 0.970376655968348, 1, 1, 0.956653101174794, 1, 1, 0.978829202466339, 1, 1, 0.978531448472892, 1, 1, 1, 0.989837280870498, 1, 0.992377446462086, 0.974445988455069, 1, 1, 1, 1, 0.93443953275981, 0.954859802129611, 0.958146964566066, 1, 1, 1, 1, 1, 1, 0.854267070327657, 0.985862948106913, 1, 1, 0.99332802417647, 1, 1, 0.96377409894567, 1, 1, 1, 0.999642926856576, 0.934315199695543, 1, 0.941949065174709, 1, 1, 1, 0.976767679320755, 0.997033711813742, 1, 0.966075782741424, 1, 1, 1, 0.973544963959327, 0.97811581203966, 0.940663350223831, 0.99491753889799, 0.96246430628483, 1, 0.998212292841391, 1, 0.890822256392005, 0.946548762523197, 1, 1, 0.99491753889799, 0.887910257434449, 1, 1, 1, 1, 1, 1, 0.904034657730067, 0.935183815389542, 1, 1, 0.920142040518658, 0.993526071316197, 0.993526071316197, 1, 1, 1, 0.88986839036352, 0.996309457217239, 1, 0.932758747283897, 1, 0.892918094176395, 1, 0.992376520973674, 0.988650707915146, 1, 1, 0.998048446575417, 0.867916975539172, 0.955490437905137, 0.968919630933354, 0.930534011925839, 1, 0.975078675502195, 0.940663350223831, 0.993624740278089, 1, 1, 1, 0.968801022434725, 1, 1, 0.975810562845176, 0.974384021697464, 1, 1, 1, 1, 1, 0.981139637944697, 1, 1, 0.916024540946009, 1, 1, 1, 1, 0.993832246445194, 1, 0.994369763352333, 1, 0.990107853563784, 1, 1, 1, 0.989671764725506, 1, 0.986863303381818, 0.875057749543968, 0.98449901523107, 0.98449901523107, 0.924366779220102, 0.988606590890998, 0.911726490126796, 1, 0.911726490126796, 0.972087765965574, 0.972087765965574, 0.911726490126796, 1, 1, 1, 1, 1, 0.8510116092288, 1, 1, 0.76580062005226, 0.943341011591898, 0.899286205213833, 1, 0.948119818763234, 1, 1, 0.974306275904791, 0.935096635461939, 0.977011005003634, 1, 0.983753566045241, 2.30258509299405, 2.83321334405622, 0, 2.89037175789616, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 2.77258872223978, 2.89037175789616, 0, 2.56494935746154, 0, 2.70805020110221, 2.94443897916644, 2.70805020110221, 3.09104245335832, 2.89037175789616, 2.56494935746154, 0, 0, 2.77258872223978, 0, 1.09861228866811, 0, 0, 3.04452243772342, 2.83321334405622, 2.83321334405622, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.94443897916644, 2.83321334405622, 0, 2.89037175789616, 2.83321334405622, 0, 0, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 2.70805020110221, 2.56494935746154, 0, 1.94591014905531, 0, 2.89037175789616, 0, 2.83321334405622, 0, 0, 0, 2.89037175789616, 2.77258872223978, 0, 1.38629436111989, 0, 0, 0, 0, 2.83321334405622, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.484906649788, 0, 2.83321334405622, 0, 2.77258872223978, 0, 0, 2.70805020110221, 2.484906649788, 1.94591014905531, 0, 0, 2.94443897916644, 2.56494935746154, 0, 2.83321334405622, 1.6094379124341, 0, 1.94591014905531, 2.77258872223978, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 0, 2.63905732961526, 0, 2.07944154167984, 0, 2.99573227355399, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 0, 2.94443897916644, 0, 3.04452243772342, 1.6094379124341, 0, 2.99573227355399, 0, 0, 2.94443897916644, 0, 0, 2.39789527279837, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 0, 2.94443897916644, 0, 2.77258872223978, 1.09861228866811, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 0, 1.94591014905531, 1.94591014905531, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 2.07944154167984, 2.70805020110221, 2.83321334405622, 2.77258872223978, 0, 3.04452243772342, 0, 0, 2.83321334405622, 1.6094379124341, 0, 2.94443897916644, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 3.04452243772342, 2.89037175789616, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.89037175789616, 0, 2.70805020110221, 1.79175946922805, 0, 2.99573227355399, 0, 0, 3.04452243772342, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 2.30258509299405, 0.693147180559945, 0, 0, 0, 0, 2.99573227355399, 0, 0, 3.04452243772342, 0, 2.77258872223978, 1.79175946922805, 0, 0, 2.94443897916644, 0, 2.94443897916644, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.99573227355399, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 2.89037175789616, 0, 2.99573227355399, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.94591014905531, 0, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 2.70805020110221, 0, 2.30258509299405, 0, 0, 2.70805020110221, 2.70805020110221, 0, 0, 0, 2.07944154167984, 2.77258872223978, 2.56494935746154, 0, 2.77258872223978, 0, 0, 2.94443897916644, 2.70805020110221, 0, 2.484906649788, 0, 2.99573227355399, 0, 2.83321334405622, 2.39789527279837, 0, 2.70805020110221, 0, 0, 0, 2.99573227355399, 2.30258509299405, 0, 0, 0, 0, 2.94443897916644, 0, 1.6094379124341, 0, 2.89037175789616, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.89037175789616, 0, 0, 2.19722457733622, 1.38629436111989, 0, 2.77258872223978, 3.04452243772342, 2.07944154167984, 0, 2.19722457733622, 0, 0, 2.77258872223978, 3.04452243772342, 3.04452243772342, 0, 2.89037175789616, 0, 0, 2.63905732961526, 2.77258872223978, 2.77258872223978, 2.77258872223978, 2.94443897916644, 2.19722457733622, 0, 2.70805020110221, 2.99573227355399, 2.70805020110221, 0, 0, 2.99573227355399, 2.19722457733622, 0, 1.94591014905531, 2.94443897916644, 0, 0, 2.99573227355399, 0, 0, 0, 0, 2.83321334405622, 1.94591014905531, 2.07944154167984, 2.30258509299405, 2.77258872223978, 0, 1.79175946922805, 0, 0, 0, 1.94591014905531, 3.17805383034795, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.99573227355399, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.83321334405622, 3.04452243772342, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 2.89037175789616, 0, 0, 1.79175946922805, 0, 2.94443897916644, 2.83321334405622, 2.63905732961526, 3.04452243772342, 0, 1.6094379124341, 0, 0, 3.04452243772342, 0, 0, 2.94443897916644, 2.77258872223978, 0, 3.04452243772342, 2.94443897916644, 2.19722457733622, 0, 0, 0, 2.99573227355399, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.30258509299405, 2.70805020110221, 0, 0, 2.56494935746154, 2.77258872223978, 0, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 2.94443897916644, 2.89037175789616, 2.77258872223978, 2.70805020110221, 0, 1.94591014905531, 0, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.56494935746154, 2.89037175789616, 2.07944154167984, 2.19722457733622, 0, 3.04452243772342, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.89037175789616, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0, 0, 1.6094379124341, 2.56494935746154, 2.99573227355399, 2.89037175789616, 2.70805020110221, 2.83321334405622, 2.77258872223978, 0, 2.30258509299405, 0, 2.99573227355399, 1.6094379124341, 0, 0, 0, 0, 0, 1.6094379124341, 2.39789527279837, 0, 1.6094379124341, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.89037175789616, 0, 2.99573227355399, 0, 2.94443897916644, 0.693147180559945, 1.09861228866811, 0, 2.99573227355399, 1.09861228866811, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.79175946922805, 0, 0, 0, 3.04452243772342, 0, 2.89037175789616, 2.07944154167984, 3.09104245335832, 3.04452243772342, 0, 2.94443897916644, 0, 0, 0, 2.94443897916644, 3.09104245335832, 2.94443897916644, 2.484906649788, 1.38629436111989, 2.94443897916644, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 3.04452243772342, 2.70805020110221, 1.79175946922805, 0, 2.99573227355399, 0.693147180559945, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.56494935746154, 0, 0, 0, 2.30258509299405, 0, 0.693147180559945, 2.99573227355399, 0, 0, 2.89037175789616, 0, 0, 0.693147180559945, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.77258872223978, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 2.77258872223978, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.77258872223978, 0, 2.63905732961526, 0, 0, 2.63905732961526, 0, 0, 0, 0, 0, 2.56494935746154, 2.77258872223978, 2.70805020110221, 0, 2.89037175789616, 0, 0, 0, 2.56494935746154, 1.6094379124341, 1.09861228866811, 0, 2.30258509299405, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 2.89037175789616, 2.83321334405622, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.83321334405622, 0, 2.63905732961526, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.39789527279837, 0, 2.83321334405622, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 1.94591014905531, 0, 0, 0, 0, 0, 2.07944154167984, 2.99573227355399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.94443897916644, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 3.04452243772342, 0, 3.04452243772342, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.89037175789616, 0.693147180559945, 0, 2.70805020110221, 0, 0, 3.13549421592915, 0, 0, 0, 3.04452243772342, 0, 2.63905732961526, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 1.09861228866811, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.77258872223978, 0, 0, 1.94591014905531, 0, 0.693147180559945, 3.17805383034795, 0, 0, 0, 2.63905732961526, 3.04452243772342, 0, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.39789527279837, 0, 2.77258872223978, 0, 0, 0, 3.04452243772342, 1.09861228866811, 2.83321334405622, 2.83321334405622, 2.70805020110221, 0, 2.19722457733622, 0, 2.77258872223978, 1.94591014905531, 0, 0, 2.83321334405622, 2.07944154167984, 0, 0, 0, 0, 0, 0, 3.04452243772342, 2.19722457733622, 0, 0, 3.04452243772342, 2.83321334405622, 2.83321334405622, 0, 0, 0, 2.63905732961526, 2.77258872223978, 0, 2.83321334405622, 0, 2.83321334405622, 0, 2.89037175789616, 2.39789527279837, 0, 0, 1.09861228866811, 2.94443897916644, 2.30258509299405, 2.99573227355399, 2.89037175789616, 0, 2.83321334405622, 2.83321334405622, 2.94443897916644, 0, 0, 0, 2.70805020110221, 0, 0, 2.77258872223978, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 3.09104245335832, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.83321334405622, 0, 2.89037175789616, 0, 2.94443897916644, 0, 0, 0, 2.63905732961526, 0, 2.94443897916644, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.77258872223978, 2.99573227355399, 2.89037175789616, 1.38629436111989, 2.89037175789616, 3.04452243772342, 3.04452243772342, 2.89037175789616, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 1.94591014905531, 2.77258872223978, 2.77258872223978, 0, 2.77258872223978, 0, 0, 2.94443897916644, 2.77258872223978, 2.89037175789616, 0, 2.77258872223978, 0.693147180559945, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 1.38629436111989, 0, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 1.38629436111989, 1.09861228866811, 1.38629436111989, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 1.6094379124341, 0, 0, 1.94591014905531, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.94591014905531, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 1.79175946922805, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0.693147180559945, 0, 0, 0, 1.94591014905531, 1.38629436111989, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 1.6094379124341, 1.38629436111989, 1.79175946922805, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.38629436111989, 1.6094379124341, 0.693147180559945, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 1.94591014905531, 0, 0, 0, 0, 1.38629436111989, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 1.94591014905531, 1.09861228866811, 0, 1.6094379124341, 0, 0, 1.6094379124341, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 1.09861228866811, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 1.09861228866811, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 1.6094379124341, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.94591014905531, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.6094379124341, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 1.94591014905531, 0, 1.6094379124341, 0, 0, 0, 1.38629436111989, 0, 0.693147180559945, 2.07944154167984, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 2.07944154167984, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.38629436111989, 1.09861228866811, 1.09861228866811, 0, 0, 0, 2.07944154167984, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 1.38629436111989, 1.09861228866811, 1.09861228866811, 1.09861228866811, 0, 1.38629436111989, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 2.07944154167984, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.79175946922805, 0, 1.38629436111989, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 1.09861228866811, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 1.38629436111989, 2.19722457733622, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.39789527279837, 0, 2.484906649788, 2.83321334405622, 2.484906649788, 2.94443897916644, 2.70805020110221, 2.56494935746154, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 2.70805020110221, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.70805020110221, 2.77258872223978, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.484906649788, 2.39789527279837, 0, 1.94591014905531, 0, 2.83321334405622, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.39789527279837, 0, 2.83321334405622, 0, 2.56494935746154, 0, 0, 2.484906649788, 2.19722457733622, 1.94591014905531, 0, 0, 2.77258872223978, 2.30258509299405, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.63905732961526, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 0, 2.63905732961526, 0, 2.77258872223978, 1.6094379124341, 0, 2.39789527279837, 0, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.79175946922805, 1.79175946922805, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 0, 0, 0, 2.484906649788, 1.6094379124341, 0, 0, 0, 2.83321334405622, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 2.56494935746154, 1.79175946922805, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 2.70805020110221, 2.30258509299405, 1.94591014905531, 0, 0, 0, 0, 1.09861228866811, 0, 2.63905732961526, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 2.89037175789616, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.19722457733622, 2.56494935746154, 0, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.19722457733622, 0, 2.39789527279837, 0, 2.89037175789616, 0, 2.30258509299405, 2.07944154167984, 0, 2.30258509299405, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 2.70805020110221, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.07944154167984, 1.38629436111989, 0, 2.56494935746154, 2.89037175789616, 1.94591014905531, 0, 2.19722457733622, 0, 0, 2.484906649788, 2.63905732961526, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.63905732961526, 2.63905732961526, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 2.83321334405622, 2.63905732961526, 0, 0, 2.89037175789616, 2.07944154167984, 0, 1.94591014905531, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 2.94443897916644, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 2.89037175789616, 0, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 0, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.19722457733622, 0, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.70805020110221, 2.77258872223978, 2.63905732961526, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.94443897916644, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.63905732961526, 2.83321334405622, 2.19722457733622, 0, 0, 0, 2.94443897916644, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 2.63905732961526, 0, 2.56494935746154, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.70805020110221, 1.09861228866811, 2.56494935746154, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 2.484906649788, 0, 0, 0, 0, 2.56494935746154, 0, 0, 2.30258509299405, 1.94591014905531, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 2.07944154167984, 2.63905732961526, 2.70805020110221, 2.39789527279837, 2.484906649788, 2.70805020110221, 0, 1.79175946922805, 0, 2.89037175789616, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 2.30258509299405, 0, 1.6094379124341, 0, 2.83321334405622, 2.19722457733622, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 2.63905732961526, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 1.09861228866811, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 2.56494935746154, 0, 0, 0, 2.63905732961526, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.94443897916644, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 1.38629436111989, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.77258872223978, 0.693147180559945, 0, 2.70805020110221, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.19722457733622, 2.39789527279837, 1.38629436111989, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 0, 0, 2.07944154167984, 0, 2.484906649788, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 1.94591014905531, 2.70805020110221, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.484906649788, 1.6094379124341, 1.09861228866811, 0, 2.19722457733622, 1.38629436111989, 2.94443897916644, 0, 1.09861228866811, 0, 0, 2.70805020110221, 0, 0, 1.38629436111989, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.19722457733622, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 2.94443897916644, 0, 0, 0, 2.39789527279837, 0, 2.56494935746154, 2.484906649788, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.56494935746154, 2.484906649788, 0, 0, 1.94591014905531, 0, 0.693147180559945, 2.70805020110221, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 1.6094379124341, 0, 0, 0, 2.63905732961526, 1.6094379124341, 0, 2.30258509299405, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.07944154167984, 2.63905732961526, 0, 2.07944154167984, 0, 2.484906649788, 1.79175946922805, 0, 0, 2.07944154167984, 1.94591014905531, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.19722457733622, 0, 0, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 0, 0, 1.94591014905531, 2.56494935746154, 0, 2.70805020110221, 0, 2.77258872223978, 0, 1.94591014905531, 2.19722457733622, 0, 0, 1.09861228866811, 2.56494935746154, 2.07944154167984, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 2.77258872223978, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 0, 2.39789527279837, 0, 0, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 2.77258872223978, 2.77258872223978, 2.30258509299405, 2.99573227355399, 2.70805020110221, 1.09861228866811, 2.70805020110221, 2.94443897916644, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 0, 2.56494935746154, 0, 0, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.56494935746154, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0.000335630401156281, 0.951705158136462, 4.54226354033032e-05, 4.54226354033032e-05, 0.000158461325115751, 6.82901703136567e-08, 0.951705158136462, 0.000553084370147834, 0.367879441171442, 4.54226354033032e-05, 9.85447301171309e-05, 2.75639995719122e-05, 0.00865169520312063, 8.48182352464692e-05, 6.82901703136567e-08, 6.52414922649936e-06, 3.728516964574e-06, 1.85631929025986e-07, 0.0111089965382423, 3.06208375824484e-07, 3.7751345442791e-11, 0.0192547017753869, 7.54153290924762e-05, 0.000335630401156281, 4.54226354033032e-05, 0.00318278079650967, 5.05610109124981e-07, 1.13999185304436e-12, 2.75502210170519e-05, 9.61116520613947e-05, 2.37621897384794e-06, 6.14421235332821e-06, 0.0142713678092802, 1.37164473732573e-06, 0.000335462627902512, 0.951705158136462, 0.951705158136462, 5.82946637308688e-05, 2.90377193170525e-06, 0.00318278079650967, 0.000336302333667127, 0.0235177458560091, 0.00150343919297757, 0.0024849568096677, 0.0820849986238988, 1.37507813913307e-06, 0.951705158136462, 1.1338236150893e-07, 6.82901703136567e-08, 3.73598146051093e-06, 0.00150343919297757, 2.38236966750182e-07, 0.999500124979169, 1.69189792261513e-10, 6.04012957765189e-05, 2.29087999933294e-11, 0.00708340892905212, 0.00117381048189304, 4.54226354033032e-05, 1.76122670539221e-06, 2.63974083545825e-08, 3.92786354548104e-07, 4.7727633936802e-05, 0.000554468810903085, 5.04347662567888e-07, 0.00708340892905212, 1.12535174719259e-07, 2.9023204086504e-06, 3.72665317207867e-06, 1.14056199149361e-12, 2.14454083165892e-05, 8.76424821944364e-08, 3.72665317207867e-06, 3.728516964574e-06, 3.0605530990624e-07, 0.60683400087146, 3.72665317207867e-06, 0.0842050822745664, 1.30072976540676e-05, 1.06823799552505e-06, 0.951705158136462, 9.61116520613947e-05, 3.72665317207867e-06, 2.14454083165892e-05, 0.0550232200564072, 8.48182352464692e-05, 1.06494746038243e-05, 0.0111368037741499, 0.951705158136462, 0.135335283236613, 6.47919096155908e-07, 0.223241753124423, 0.0821260513855459, 0.000912794303613072, 3.92982796831856e-07, 0.0820849986238988, 1.37095908638408e-06, 0.0183156388887342, 0.999500124979169, 2.06218445693692e-09, 8.48182352464692e-05, 0.0820849986238988, 0.951705158136462, 0.038774207831722, 0.0111145524253675, 9.63522317909083e-05, 1.30072976540676e-05, 4.53999297624849e-05, 0.00673794699908547, 0.472366552741015, 0.00674131681496878, 0.0001588579740331, 0.0820849986238988, 0.00673794699908547, 4.53999297624849e-05, 0.951705158136462, 0.0111145524253675, 0.0821260513855459, 0.00673794699908547, 0.018324798998015, 1.85631929025986e-07, 4.53999297624849e-05, 0.0820849986238988, 0.000261258557301668, 0.28650479686019, 3.21586267857925e-07, 0.00708340892905212, 7.86895652717947e-05, 0.0235177458560091, 3.7751345442791e-11, 0.951705158136462, 0.0820849986238988, 0.951229424500714, 0.000553084370147834, 0.122456428252982, 2.06218445693692e-09, 5.90530399894404e-10, 4.35219686455574e-08, 1.12816864621722e-07, 0.00708340892905212, 0.951705158136462, 0.0639278612067076, 0.00674131681496878, 0.000158461325115751, 0.000911881965554516, 3.05902320501826e-07, 2.06115362243856e-09, 0.00319234347574604, 0.105399224561864, 0.0116785669703954, 1.01453001410843e-05, 1.38948895731788e-11, 0.000553084370147834, 5.31844381163554e-08, 3.72665317207867e-06, 0.0820849986238988, 1.30072976540676e-05, 0.00673794699908547, 0.223241753124423, 2.38236966750182e-07, 0.0202419114458044, 0.00673794699908547, 2.1668312284604e-09, 0.999500124979169, 0.00673794699908547, 0.128734903587804, 2.79086317565699e-10, 0.0235295076691454, 0.0820849986238988, 0.951705158136462, 0.778800783071405, 0.0820849986238988, 0.00708340892905212, 0.0550232200564072, 0.0820849986238988, 0.951705158136462, 3.72665317207867e-06, 0.28650479686019, 2.38236966750182e-07, 0.00674131681496878, 1.3887943864964e-11, 0.60683400087146, 3.22418673725673e-08, 0.368800290356243, 0.778800783071405, 0.00202943063629573, 0.951705158136462, 0.00763509421885996, 0.00673794699908547, 0.367879441171442, 0.00682269993889683, 3.72665317207867e-06, 2.06115362243856e-09, 0.0907179532894125, 3.92786354548104e-07, 0.00150343919297757, 1.85539136261598e-07, 0.0183156388887342, 0.000553084370147834, 0.00674131681496878, 0.0235177458560091, 0.000911881965554516, 0.0820849986238988, 0.0247235264703394, 0.00673794699908547, 0.00193045413622771, 1.06770401003478e-06, 0.0235177458560091, 7.48892651606827e-05, 0.951229424500714, 4.54226354033032e-05, 0.00708340892905212, 0.951705158136462, 0.00247875217666636, 9.3785527959639e-05, 0.000553084370147834, 0.00012365687067909, 5.55951324165015e-06, 0.60683400087146, 0.0820849986238988, 1.76475268360589e-06, 0.0235177458560091, 0.472366552741015, 8.69654190944029e-05, 0.472366552741015, 0.0287246396542394, 4.53999297624849e-05, 0.0111089965382423, 0.951705158136462, 0.951705158136462, 3.21586267857925e-07, 0.22313016014843, 0.951705158136462, 0.951705158136462, 0.0235177458560091, 0.0301973834223185, 0.00674131681496878, 0.000553084370147834, 0.0111089965382423, 0.192049908620754, 0.00318278079650967, 0.62188505646502, 0.951705158136462, 2.51099915574398e-08, 4.78511739212901e-06, 1.13411309337498e-10, 1.76034631215617e-06, 0.0116785669703954, 0.951705158136462, 3.728516964574e-06, 3.72665317207867e-06, 1.3887943864964e-11, 0.00673794699908547, 0.951229424500714, 3.21586267857925e-07, 4.13993771878517e-08, 0.60683400087146, 0.0820849986238988, 0.999500124979169, 0.905289949868508, 8.76424821944364e-08, 0.00193045413622771, 0.000553084370147834, 0.00193045413622771, 2.06115362243856e-09, 0.135335283236613, 7.87289198922657e-05, 3.7303816891986e-06, 0.368063426884623, 0.00408677143846407, 4.53999297624849e-05, 0.00193045413622771, 0.951229424500714, 0.00012347152441752, 0.00318278079650967, 0.0820849986238988, 0.135335283236613, 0.00193528630926782, 0.951705158136462, 0.00379147558214861, 1.44498024610924e-07, 0.000553084370147834, 0.00273944481876837, 0.00708340892905212, 0.000553084370147834, 2.06218445693692e-09, 0.0498119681264688, 0.00980855808900089, 0.00708340892905212, 0.000553360981479978, 0.000203570128632935, 0.00247875217666636, 3.05902320501826e-07, 3.05902320501826e-07, 0.000581441612193756, 0.00408677143846407, 0.00708340892905212, 1.3020311457539e-05, 0.0116785669703954, 0.000553360981479978, 0.00674131681496878, 2.06115362243856e-09, 0.999500124979169, 0.999500124979169, 4.84736870627026e-11, 0.00708340892905212, 2.64789725660542e-09, 0.000158461325115751, 0.0820849986238988, 3.05902320501826e-07, 2.06218445693692e-09, 0.608048883350721, 0.0523397059484324, 0.0820849986238988, 8.29381916075737e-06, 2.51225496924906e-08, 0.0273237224472926, 2.06218445693692e-09, 1.45999939733294e-11, 0.105399224561864, 0.000553084370147834, 0.951705158136462, 9.61116520613947e-05, 4.11001001387137e-05, 5.04599899453138e-07, 1.67100537287014e-05, 8.74162108200159e-07, 0.000553084370147834, 0.951705158136462, 5.01746820561753e-05, 3.05902320501826e-07, 3.05902320501826e-07, 0.00673794699908547, 0.0497870683678639, 0.0111089965382423, 0.00012340980408668, 0.22313016014843, 6.32089927196706e-16, 0.951705158136462, 1.13999185304436e-12, 0.951705158136462, 2.75364493497472e-05, 0.000129737160045754, 0.0183156388887342, 0.000430742540575688, 0.000553084370147834, 2.89482732982116e-05, 4.53999297624849e-05, 0.000553084370147834, 0.951705158136462, 2.64657363890912e-09, 0.00193045413622771, 6.91785817143775e-13, 0.0497870683678639, 0.000158461325115751, 0.00012340980408668, 0.00247875217666636, 0.000336302333667127, 0.0822904678499759, 0.951705158136462, 0.000352662164628256, 0.0820849986238988, 6.9144001069402e-13, 1.14570608598729e-12, 0.000553360981479978, 0.018324798998015, 8.99376602902882e-18, 1.67017007902457e-05, 2.51728450704886e-08, 0.951705158136462, 0.00673794699908547, 0.0639278612067076, 3.72665317207867e-06, 0.00012340980408668, 0.0111145524253675, 6.22725747336699e-11, 0.0820849986238988, 2.06115362243856e-09, 8.31528719103568e-07, 0.0192547017753869, 3.86038082117729e-09, 6.14728522765943e-06, 0.000911881965554516, 0.000912338020541539, 0.00674131681496878, 0.951705158136462, 0.0821260513855459, 0.000581441612193756, 0.000158461325115751, 0.000553084370147834, 0.0820849986238988, 0.951229424500714, 0.60683400087146, 0.000553084370147834, 0.951705158136462, 1.67100537287014e-05, 0.0183156388887342, 5.5739036926946e-07, 0.000336302333667127, 1.18304976507983e-07, 0.00674131681496878, 0.060810062625218, 4.13993771878517e-08, 0.00150419110053529, 0.951705158136462, 0.000553084370147834, 0.0183431329624674, 3.05902320501826e-07, 1.0788017451298e-10, 0.00674806150356599, 1.67017007902457e-05, 0.000203570128632935, 0.00673794699908547, 4.54680807575966e-05, 6.91785817143775e-13, 1.12535174719259e-07, 0.000166585810987634, 2.06115362243856e-09, 0.00865169520312063, 0.951705158136462, 1.76034631215617e-06, 0.951705158136462, 0.000553360981479978, 0.0235177458560091, 0.000553084370147834, 4.7727633936802e-05, 0.00150419110053529, 1.67031220484403e-06, 2.94007773928447e-11, 0.000193545099558094, 0.0223707718561656, 0.0820849986238988, 0.00158052216873622, 0.951229424500714, 2.51099915574398e-08, 0.0820849986238988, 3.73598146051093e-06, 4.35219686455574e-08, 4.53999297624849e-05, 0.000335462627902512, 4.54226354033032e-05, 2.51225496924906e-08, 0.0820849986238988, 5.13513538884332e-13, 0.0116785669703954, 2.1668312284604e-09, 8.72341297851823e-06, 0.038774207831722, 0.951705158136462, 0.999500124979169, 0.951705158136462, 0.000158461325115751, 0.951705158136462, 0.00150419110053529, 0.951705158136462, 3.72665317207867e-06, 0.000553084370147834, 0.0235177458560091, 3.73224734641864e-06, 0.000111665808490115, 3.05902320501826e-07, 0.00429630469075234, 0.149718262651102, 2.06115362243856e-09, 3.10036893570814e-12, 0.951705158136462, 0.00247999186265036, 7.68504624785534e-15, 3.21586267857925e-07, 0.000553084370147834, 2.37859638132741e-06, 0.000553084370147834, 2.51099915574398e-08, 0.951705158136462, 3.728516964574e-06, 4.53999297624849e-05, 0.0111089965382423, 0.951705158136462, 9.61116520613947e-05, 1.3887943864964e-11, 0.00474815099941148, 0.105399224561864, 8.31944587421534e-07, 9.66581709718793e-07, 0.00865169520312063, 5.60559853622232e-09, 0.000710174388842549, 0.951705158136462, 4.53999297624849e-05, 5.89005795366149e-09, 0.951705158136462, 0.00012340980408668, 5.87335173528082e-05, 1.52299797447126e-08, 8.71840251166509e-11, 0.951705158136462, 1.06770401003478e-06, 3.73224734641864e-06, 0.0235177458560091, 1.3887943864964e-11, 4.6588861451034e-15, 1.52375966386498e-08, 3.97896253583724e-12, 0.951705158136462, 3.0605530990624e-07, 0.00012347152441752, 3.72665317207867e-06, 4.53999297624849e-05, 0.606530659712633, 3.77702258352171e-11, 6.45923285705046e-06, 6.84327102221799e-09, 0.951705158136462, 4.3634622529437e-09, 9.6908364580017e-08, 0.000303539138078867, 0.606530659712633, 1.06494746038243e-05, 1.02670118544665e-10, 0.00055363773115237, 0.00247875217666636, 0.28650479686019, 1.69274408309893e-10, 1.24370602360287e-07, 2.06115362243856e-09, 0.00408677143846407, 4.47463804640308e-05, 4.14200820522303e-08, 0.000553084370147834, 3.10036893570814e-12, 3.05902320501826e-07, 0.951705158136462, 1.45999939733294e-11, 0.0183156388887342, 6.44255670343554e-05, 0.00708340892905212, 0.951705158136462, 2.06218445693692e-09, 0.000158540575589276, 0.000335630401156281, 2.26145985427281e-06, 0.00012340980408668, 8.31944587421534e-07, 1.14056199149361e-12, 2.86251858054939e-20, 8.42346375446865e-12, 7.88932482720022e-06, 3.3999673782591e-09, 0.951705158136462, 3.05902320501826e-07, 0.00408677143846407, 0.000553084370147834, 5.61682095196972e-09, 0.00708340892905212, 0.951705158136462, 3.94822391865094e-09, 3.728516964574e-06, 0.000123718714574115, 1.54358280167703e-13, 0.000203570128632935, 0.0183156388887342, 0.000261258557301668, 0.000123718714574115, 4.60135548131939e-10, 1.02618796317019e-10, 0.000175126848157658, 2.30564736129533e-16, 1.3887943864964e-11, 4.53999297624849e-05, 1.01351599119028e-05, 0.000554468810903085, 0.286648085077689, 0.00674131681496878, 0.000500451433440611, 0.0111089965382423, 0.0136025228468352, 0.951705158136462, 4.35219686455574e-08, 3.42472479249159e-12, 0.951705158136462, 1.88423351700565e-12, 0.0100518357446336, 4.54226354033032e-05, 2.63974083545825e-08, 1.30072976540676e-05, 0.00012340980408668, 0.00673794699908547, 1.3887943864964e-11, 2.30657983610627e-09, 6.45923285705046e-06, 2.26145985427281e-06, 1.14056199149361e-12, 3.92982796831856e-07, 7.48892651606827e-05, 4.60135548131939e-10, 4.7727633936802e-05, 1.74008858514694e-11, 3.80383800357089e-06, 3.72665317207867e-06, 1.30072976540676e-05, 2.51099915574398e-08, 4.7727633936802e-05, 4.54226354033032e-05, 0.951705158136462, 3.05902320501826e-07, 1.85539136261598e-07, 2.14454083165892e-05, 0.951705158136462, 2.51937425193464e-06, 2.39051914530491e-06, 5.54515994321769e-05, 0.000158540575589276, 1.13999185304436e-12, 0.00673794699908547, 5.92008572840442e-10, 3.3999673782591e-09, 8.76424821944364e-08, 5.34601236116235e-10, 0.951705158136462, 5.01746820561753e-05, 0.000553084370147834, 2.06115362243856e-09, 2.51099915574398e-08, 1.69712564490116e-11, 1.3887943864964e-11, 4.35219686455574e-08, 3.05902320501826e-07, 0.00708340892905212, 5.05610109124981e-07, 1.14284539812209e-12, 2.37621897384794e-06, 0.000553914619234198, 7.70043172069537e-15, 4.20675388637505e-14, 1.30474883410578e-06, 0.000158461325115751, 5.60559853622232e-09, 9.35762296884017e-14, 1.88533629141692e-13, 6.82901703136567e-08, 3.72665317207867e-06, 3.0605530990624e-07, 4.13993771878517e-08, 3.57428743338516e-09, 3.0605530990624e-07, 0.00166155727317393, 0.000553360981479978, 5.04347662567888e-07, 7.36347283395392e-18, 1.3674196065681e-05, 3.22686332296889e-06, 0.951705158136462, 0.000335630401156281, 1.33134712014837e-14, 3.44419877740557e-14, 4.61056740113121e-10, 8.76424821944364e-08, 1.33890341235067e-10, 0.00532682448382038, 1.85539136261598e-07, 3.72665317207867e-06, 0.000553360981479978, 1.71819856305081e-15, 5.60559853622232e-09, 0.00524751839918138, 0.472366552741015, 2.79225895616086e-10, 0.00193528630926782, 3.26613134278745e-13, 1.38520886031376e-10, 1.69189792261513e-10, 0.951705158136462, 5.44091138530373e-17, 2.68234470489704e-14, 2.51225496924906e-08, 4.59905537865232e-10, 8.74162108200159e-07, 1.02242856555085e-08, 7.19413303032538e-09, 7.5769156379498e-13, 0.00033647052687876, 5.90530399894404e-10, 0.951705158136462, 3.72665317207867e-06, 0.00708340892905212, 0.00673794699908547, 2.924916218268e-09, 0.00673794699908547, 0.000335630401156281, 2.26145985427281e-06, 2.63974083545825e-08, 9.61597199033844e-05, 0.60683400087146, 0.000453053653091073, 4.36564452959387e-09, 2.54493779821181e-13, 4.77753854425123e-05, 0.000553084370147834, 2.26032940698105e-06, 2.82575728711561e-15, 5.60279643753727e-09, 1.61152469107488e-08, 4.07262173446808e-21, 8.31944587421534e-07, 3.26613134278745e-13, 1.50158484838944e-12, 6.56020016815378e-12, 2.51225496924906e-08, 0.951705158136462, 0.28650479686019, 2.47264135281109e-21, 3.05902320501826e-07, 2.51225496924906e-08, 3.0605530990624e-07, 0.0301973834223185, 8.31528719103568e-07, 0.000553360981479978, 4.6951575726312e-18, 1.01554505155667e-05, 2.37621897384794e-06, 2.1668312284604e-09, 4.40881615976168e-13, 4.3634622529437e-09, 4.7727633936802e-05, 0.951229424500714, 0.0183614852700543, 2.51099915574398e-08, 7.19413303032538e-09, 2.17243993507902e-10, 0.999500124979169, 0.105399224561864, 3.92786354548104e-07, 9.36230295022243e-14, 2.64657363890912e-09, 3.3999673782591e-09, 5.67852378482794e-14, 8.31803014157123e-05, 7.91370171109471e-07, 0.951705158136462, 0.00708340892905212, 2.14454083165892e-05, 4.53999297624849e-05, 0.000553084370147834, 5.90530399894404e-10, 3.05902320501826e-07, 3.26613134278745e-13, 1.20154257317718e-13, 1.468785726345e-11, 2.51099915574398e-08, 0.00193045413622771, 9.66581709718793e-07, 1.02875664258954e-10, 1.76034631215617e-06, 1.02670118544665e-10, 1.50483121732107e-08, 2.04625349553219e-06, 3.47851754052321e-13, 1.44498024610924e-07, 4.13993771878517e-08, 2.78946809286892e-10, 6.79380085872525e-06, 2.79086317565699e-10, 2.64657363890912e-09, 3.05902320501826e-07, 3.05902320501826e-07, 1.26704992151533e-14, 2.51099915574398e-08, 1.468785726345e-11, 8.52578968847199e-07, 2.02763896730411e-22, 1.38948895731788e-11, 0.00193045413622771, 1.06770401003478e-06, 4.14200820522303e-08, 0.951705158136462, 8.48904403387178e-15, 1.67017007902457e-05, 3.05902320501826e-07, 5.82946637308688e-05, 8.0959301752126e-16, 0.00708340892905212, 4.53999297624849e-05, 9.83739855792608e-14, 3.97896253583724e-12, 0.00012347152441752, 3.05902320501826e-07, 0.00673794699908547, 0.000553084370147834, 8.76424821944364e-08, 0.00673794699908547, 2.1668312284604e-09, 0.0743107242891859, 0.484566791790503, 0.105451937351244, 0.212354124349076, 0.819140220812924, 0.637947045414389, 0.00166571636305303, 0.0302124858893318, 0.00095863515369402, 2.51099915574398e-08, 0.608048883350721, 0.246596963941606, 0.028739005565245, 2.9023204086504e-06, 0.237520819095458, 5.17555500580187e-17, 0.951705158136462, 3.72665317207867e-06, 6.02357383788648e-08, 0.00673794699908547, 0.00673794699908547, 0.0235177458560091, 2.14454083165892e-05, 2.64657363890912e-09, 8.85534397644396e-12, 4.54226354033032e-05, 5.30206120182429e-07, 9.86286204658045e-15, 0.951705158136462, 9.36230295022243e-14, 1.4075653191894e-16, 5.44091138530373e-17, 1.4075653191894e-16, 1.30072976540676e-05, 9.36230295022243e-14, 2.51099915574398e-08, 3.05902320501826e-07, 1.12535174719259e-07, 5.62010827615891e-10, 2.26032940698105e-06, 7.13855630669085e-06, 0.000553084370147834, 0.0183156388887342, 0.00673794699908547, 0.000129737160045754, 0.0302124858893318, 1.44498024610924e-07, 0.00117087962079117, 0.000335462627902512, 7.88932482720022e-06, 3.92786354548104e-07, 8.31528719103568e-07, 6.82560337633487e-08, 7.97132661438841e-10, 0.000261258557301668, 7.6812046852021e-15, 2.91736480260516e-08, 0.000158461325115751, 1.40686171244615e-16, 8.76424821944364e-08, 5.178143430357e-17, 1.30072976540676e-05, 0.00166155727317393, 0.00524751839918138, 0.000158461325115751, 1.13999185304436e-12, 2.51728450704886e-08, 0.000710174388842549, 2.75364493497472e-05, 0.00673794699908547, 2.69306713765785e-08, 2.05052457561193e-07, 2.63974083545825e-08, 1.01300935986307e-05, 1.06770401003478e-06, 1.67017007902457e-05, 0.000581441612193756, 2.51099915574398e-08, 3.05902320501826e-07, 3.72665317207867e-06, 2.06115362243856e-09, 5.30206120182429e-07, 3.72665317207867e-06, 3.97896253583724e-12, 1.31765142700955e-10, 1.3887943864964e-11, 0.0301973834223185, 0.779190280829265, 2.26145985427281e-06, 0.00673794699908547, 4.53999297624849e-05, 5.60279643753727e-09, 0.0497870683678639, 3.7751345442791e-11, 0.000158461325115751, 0.0306690891407788, 0.472366552741015, 1.30072976540676e-05, 0.000553084370147834, 0.000581441612193756, 0.223688683411983, 0.472366552741015, 0.377192353563157, 0.0302729713263857, 0.0235177458560091, 0.0820849986238988, 0.00673794699908547, 3.0605530990624e-07, 0.28650479686019, 0.951705158136462, 0.0498119681264688, 2.89482732982116e-05, 0.472602795073046, 0.00247999186265036, 0.0111145524253675, 0.192530634048713, 0.00166155727317393, 0.135335283236613, 0.951705158136462, 2.89482732982116e-05, 0.951705158136462, 0.951229424500714, 4.53999297624849e-05, 0.28650479686019, 0.22313016014843, 0.778800783071405, 0.135335283236613, 0.0235295076691454, 0.223688683411983, 0.135335283236613, 0.0820849986238988, 7.48892651606827e-05, 0.951229424500714, 0.0301973834223185, 0.0821260513855459, 2.06218445693692e-09, 0.0820849986238988, 0.00673794699908547, 0.951705158136462, 0.951705158136462, 0.951705158136462, 0.000553084370147834, 0.472366552741015, 3.72665317207867e-06, 0.000728152539089461, 0.951705158136462, 0.28650479686019, 0.951705158136462, 0.951705158136462, 0.000553084370147834, 0.951705158136462, 0.367879441171442, 0.00673794699908547, 5.33039564348739e-05, 0.000529540981138434, 0.951705158136462, 0.951705158136462, 0.0706865474998335, 0.60683400087146, 0.0498119681264688, 0.606530659712633, 0.00675481294022526, 0.00166155727317393, 0.00674131681496878, 0.00674131681496878, 0.00673794699908547, 0.00150343919297757, 0.00674131681496878, 0.000409939897694686, 0.038774207831722, 0.0618526707495454, 0.0192547017753869, 0.000805135477238069, 0.0142642339089993, 0.00674131681496878, 0.951705158136462, 0.00675481294022526, 0.00673794699908547, 0.00673794699908547, 0.0105672043838527, 0.000430742540575688, 0.28650479686019, 0.000553084370147834, 9.73620031300957e-10, 8.76424821944364e-08, 0.60683400087146, 0.951705158136462, 0.368800290356243, 5.60559853622232e-09, 0.000554468810903085, 0.000554468810903085, 1.8600356439553e-07, 2.51225496924906e-08, 0.0235295076691454, 3.72665317207867e-06, 0.00193141960464281, 1.25077809911509e-09, 4.54226354033032e-05, 0.0821260513855459, 3.38074348390474e-07, 1.1259145637586e-07, 2.89482732982116e-05, 3.91772276602433e-06, 3.91772276602433e-06, 1.06494746038243e-05, 1.18304976507983e-07, 5.30206120182429e-07, 2.19502031567398e-14, 4.83485399020988e-10, 3.2576989934351e-12, 0.0111089965382423, 0.0129068125804799, 0.0820849986238988, 3.728516964574e-06, 2.06115362243856e-09, 3.72665317207867e-06, 0.000261389219243081, 0.000261389219243081, 0.00247999186265036, 1.67435072785575e-05, 8.74162108200159e-07, 1.18304976507983e-07, 0.0113902221245134, 6.1595921008857e-06, 6.82901703136567e-08, 2.06115362243856e-09, 0.00247999186265036, 5.07511131328062, -0.0100503358535015, 5.298267365298, 5.298267365298, 5.16478597392351, 5.79906235097108, -0.0100503358535015, 5.01063529409626, 2.99573227355399, 5.298267365298, 5.21764946348058, 5.34701228808679, 4.55387689160054, 5.23377884541047, 5.79906235097108, 5.47562638151845, 5.52142091706223, 5.73654003889437, 4.49980967033027, 5.70371580576721, 6.17378610390194, 4.36944785246702, 5.24623428667781, 5.07511131328062, 5.298267365298, 4.74493212836325, 5.66970849432245, 6.30991827822652, 5.34705991053603, 5.22035582507832, 5.55682806169954, 5.48063892334199, 4.44253360251053, 5.59838492127545, 5.07517381523383, -0.0100503358535015, -0.0100503358535015, 5.27299955856375, 5.5412243287032, 4.74493212836325, 5.07486126639553, 4.31748811353631, 4.86753445045558, 4.7870749892857, 3.91202300542815, 5.59819971208114, -0.0100503358535015, 5.76785213589615, 5.79906235097108, 5.52126089785958, 4.86753445045558, 5.72031177660741, -4.60517018598809, 6.10924758276437, 5.26935188825502, 6.19438498273316, 4.59511985013459, 4.90490433946401, 5.298267365298, 5.57969208942515, 5.85507192220243, 5.68697535633982, 5.29330482472449, 5.01030190519502, 5.66988092298052, 4.59511985013459, 5.76832099579377, 5.54126354515843, 5.52146091786225, 6.30990009624304, 5.37063802812766, 5.78382518232974, 5.52146091786225, 5.52142091706223, 5.7037491407673, 2.30158459266046, 5.52146091786225, 3.90177062896379, 5.41610040220442, 5.61673473336903, -0.0100503358535015, 5.22035582507832, 5.52146091786225, 5.37063802812766, 4.06044301054642, 5.23377884541047, 5.43372200355424, 4.49925396039654, -0.0100503358535015, 3.68887945411394, 5.65245409193376, 3.40086399276092, 3.91182298542548, 4.94149955526139, 5.68694145746017, 3.91202300542815, 5.59842195899838, 4.38202663467388, -4.60517018598809, 5.99143954679548, 5.23377884541047, 3.91202300542815, -0.0100503358535015, 4.17438726989564, 4.49969855304586, 5.22008551827846, 5.41610040220442, 5.29831736654804, 4.60517018598809, 2.70805020110221, 4.60507018098776, 5.1645002188137, 3.91202300542815, 4.60517018598809, 5.29831736654804, -0.0100503358535015, 4.49969855304586, 3.91182298542548, 4.60517018598809, 4.38190162686073, 5.73654003889437, 5.29831736654804, 3.91202300542815, 5.10594547390058, 3.2188758248682, 5.70044357339069, 4.59511985013459, 5.24174701505964, 4.31748811353631, 6.17378610390194, -0.0100503358535015, 3.91202300542815, 0, 5.01063529409626, 3.73766961828337, 5.99143954679548, 6.05208916892442, 5.82600010738045, 5.76816473358547, 4.59511985013459, -0.0100503358535015, 4.00733318523247, 4.60507018098776, 5.16478597392351, 4.9416424226093, 5.7037824746562, 5.99146454710798, 4.7444102530796, 3.80666248977032, 4.48863636973214, 5.43794886563323, 6.21458809822219, 5.01063529409626, 5.81410068063326, 5.52146091786225, 3.91202300542815, 5.41610040220442, 4.60517018598809, 3.40086399276092, 5.72031177660741, 4.35670882668959, 4.60517018598809, 5.98896141688986, -4.60517018598809, 4.60517018598809, 3.71357206670431, 6.08675199938131, 4.3173547713133, 3.91202300542815, -0.0100503358535015, 1.6094379124341, 3.91202300542815, 4.59511985013459, 4.06044301054642, 3.91202300542815, -0.0100503358535015, 5.52146091786225, 3.2188758248682, 5.72031177660741, 4.60507018098776, 6.21460809842219, 2.30158459266046, 5.84354441703136, 2.99322914333587, 1.6094379124341, 4.82028156560504, -0.0100503358535015, 4.5798523780038, 4.60517018598809, 2.99573227355399, 4.60266705576997, 5.52146091786225, 5.99146454710798, 3.87120101090789, 5.68697535633982, 4.86753445045558, 5.73657229747919, 4.38202663467388, 5.01063529409626, 4.60507018098776, 4.31748811353631, 4.9416424226093, 3.91202300542815, 4.30406509320417, 4.60517018598809, 4.8283137373023, 5.61677109766657, 4.31748811353631, 5.24697143919645, 0, 5.298267365298, 4.59511985013459, -0.0100503358535015, 4.78749174278205, 5.22300097223859, 5.01063529409626, 5.19273460397297, 5.48893772615669, 2.30158459266046, 3.91202300542815, 5.57954112893877, 4.31748811353631, 2.70805020110221, 5.23110861685459, 2.70805020110221, 4.26267987704132, 5.29831736654804, 4.49980967033027, -0.0100503358535015, -0.0100503358535015, 5.70044357339069, 3.40119738166216, -0.0100503358535015, -0.0100503358535015, 4.31748811353631, 4.24849524204936, 4.60507018098776, 5.01063529409626, 4.49980967033027, 3.49650756146648, 4.74493212836325, 2.2512917986065, -0.0100503358535015, 5.85793315448346, 5.50125821054473, 6.12686918411419, 5.57972982598622, 4.48863636973214, -0.0100503358535015, 5.52142091706223, 5.52146091786225, 6.21460809842219, 4.60517018598809, 0, 5.70044357339069, 5.82894561761021, 2.30158459266046, 3.91202300542815, -4.60517018598809, 0.688134638736401, 5.78382518232974, 4.8283137373023, 5.01063529409626, 4.8283137373023, 5.99146454710798, 3.68887945411394, 5.24169410360695, 5.52138091466208, 2.99523214851231, 4.70048036579242, 5.29831736654804, 4.8283137373023, 0, 5.19290129379139, 4.74493212836325, 3.91202300542815, 3.68887945411394, 4.82791365728096, -0.0100503358535015, 4.71402459090017, 5.75257263882563, 5.01063529409626, 4.77068462446567, 4.59511985013459, 5.01063529409626, 5.99143954679548, 4.094177881665, 4.52710053056617, 4.59511985013459, 5.01056862520727, 5.13573961179068, 4.78749174278205, 5.7037824746562, 5.7037824746562, 5.00394630594546, 4.70048036579242, 4.59511985013459, 5.41601150936468, 4.48863636973214, 5.01056862520727, 4.60507018098776, 5.99146454710798, -4.60517018598809, -4.60517018598809, 6.16331480403464, 4.59511985013459, 5.97886044812496, 5.16478597392351, 3.91202300542815, 5.7037824746562, 5.99143954679548, 2.2975725511705, 4.07753744390572, 3.91202300542815, 5.4553211153577, 5.85790458264672, 4.27666611901606, 5.99143954679548, 6.21260609575152, 3.80666248977032, 5.01063529409626, -0.0100503358535015, 5.22035582507832, 5.3082181912253, 5.66984643962735, 5.39358209077382, 5.63121178182137, 5.01063529409626, -0.0100503358535015, 5.28826703069454, 5.7037824746562, 5.7037824746562, 4.60517018598809, 4.0943445622221, 4.49980967033027, 5.19295685089021, 3.40119738166216, 6.55100890392083, -0.0100503358535015, 6.30991827822652, -0.0100503358535015, 5.34710753071747, 5.18738580584075, 4.38202663467388, 5.04342511691925, 5.01063529409626, 5.34233425196481, 5.29831736654804, 5.01063529409626, -0.0100503358535015, 5.97888576490112, 4.8283137373023, 6.3279189264269, 4.0943445622221, 5.16478597392351, 5.19295685089021, 4.78749174278205, 5.07486126639553, 3.91102250509456, -0.0100503358535015, 5.06890420222023, 3.91202300542815, 6.32793678372919, 6.30973644351377, 5.01056862520727, 4.38190162686073, 6.66568371778241, 5.39362754635236, 5.85779028713555, -0.0100503358535015, 4.60517018598809, 4.00733318523247, 5.52146091786225, 5.19295685089021, 4.49969855304586, 6.15271141788201, 3.91202300542815, 5.99146454710798, 5.63478960316925, 4.36944785246702, 5.95958680820996, 5.48059725580725, 4.9416424226093, 4.94157099148673, 4.60507018098776, -0.0100503358535015, 3.91182298542548, 5.00394630594546, 5.16478597392351, 5.01063529409626, 3.91202300542815, 0, 2.30158459266046, 5.01063529409626, -0.0100503358535015, 5.39358209077382, 4.38202663467388, 5.66296048013595, 5.07486126639553, 5.76519110278484, 4.60507018098776, 4.02535169073515, 5.82894561761021, 4.86745752441993, -0.0100503358535015, 5.01063529409626, 4.3816515643438, 5.7037824746562, 6.12905021006055, 4.60487014097909, 5.39362754635236, 5.13573961179068, 4.60517018598809, 5.29816735529691, 6.3279189264269, 5.76832099579377, 5.15905529921453, 5.99146454710798, 4.55387689160054, -0.0100503358535015, 5.57972982598622, -0.0100503358535015, 5.01056862520727, 4.31748811353631, 5.01063529409626, 5.29330482472449, 4.86745752441993, 5.58368426104238, 6.18414889093748, 5.14166355650266, 4.33073334028633, 3.91202300542815, 4.85981240436167, 0, 5.85793315448346, 3.91202300542815, 5.52126089785958, 5.82600010738045, 5.29831736654804, 5.07517381523383, 5.298267365298, 5.85790458264672, 3.91202300542815, 6.33850573507843, 4.48863636973214, 5.98896141688986, 5.45099553418974, 4.17438726989564, -0.0100503358535015, -4.60517018598809, -0.0100503358535015, 5.16478597392351, -0.0100503358535015, 4.86745752441993, -0.0100503358535015, 5.52146091786225, 5.01063529409626, 4.31748811353631, 5.52134091066167, 5.2040066870768, 5.7037824746562, 4.69134788222914, 3.63705970538414, 5.99146454710798, 6.27285813844364, -0.0100503358535015, 4.7874084059763, 6.47695697815595, 5.70044357339069, 5.01063529409626, 5.55675083864069, 5.01063529409626, 5.85793315448346, -0.0100503358535015, 5.52142091706223, 5.29831736654804, 4.49980967033027, -0.0100503358535015, 5.22035582507832, 6.21460809842219, 4.67282883446191, 3.80666248977032, 5.63475388824576, 5.62398140445265, 4.55387689160054, 5.94014493658469, 4.97673374242057, -0.0100503358535015, 5.29831736654804, 5.93753620508243, -0.0100503358535015, 5.19295685089021, 5.27223003178472, 5.88610403145016, 6.13828845154878, -0.0100503358535015, 5.61677109766657, 5.52134091066167, 4.31748811353631, 6.21460809842219, 6.49223983502047, 5.88607625328657, 6.26339826259162, -0.0100503358535015, 5.7037491407673, 5.19290129379139, 5.52146091786225, 5.29831736654804, 2.30258509299405, 6.17376527035159, 5.47646355193151, 5.92958914338989, -0.0100503358535015, 5.95324333428778, 5.77762136299107, 5.08759633523238, 2.30258509299405, 5.43372200355424, 6.13120475011641, 5.01050195187324, 4.78749174278205, 3.2188758248682, 6.10922536029523, 5.76205138278018, 5.99146454710798, 4.70048036579242, 5.29976631631314, 5.82891620541297, 5.01063529409626, 6.27285813844364, 5.7037824746562, -0.0100503358535015, 6.21260609575152, 4.38202663467388, 5.26269018890489, 4.59511985013459, -0.0100503358535015, 5.99143954679548, 5.16472882943366, 5.07511131328062, 5.5606431687374, 5.19295685089021, 5.63475388824576, 6.30990009624304, 6.80239476332431, 6.23441072571837, 5.45958551414416, 5.96612109776931, -0.0100503358535015, 5.7037824746562, 4.70048036579242, 5.01063529409626, 5.94003966511579, 4.59511985013459, -0.0100503358535015, 5.95842469302978, 5.52142091706223, 5.19267903452504, 6.38010558760358, 5.13573961179068, 4.38202663467388, 5.10594547390058, 5.19267903452504, 6.06376195260323, 6.13122648948314, 5.15329159449778, 6.57941786478942, 6.21460809842219, 5.29831736654804, 5.43803582971712, 5.01030190519502, 3.21847574484686, 4.60507018098776, 5.02388052084628, 4.49980967033027, 4.45376573182886, -0.0100503358535015, 5.82600010738045, 6.26909628370626, -0.0100503358535015, 6.29147654267877, 4.52178857704904, 5.298267365298, 5.85507192220243, 5.41610040220442, 5.19295685089021, 4.60517018598809, 6.21460809842219, 5.9858236672179, 5.47646355193151, 5.5606431687374, 6.30990009624304, 5.68694145746017, 5.24697143919645, 6.06376195260323, 5.29330482472449, 6.20554717193168, 5.51981957159012, 5.52146091786225, 5.41610040220442, 5.85793315448346, 5.29330482472449, 5.298267365298, -0.0100503358535015, 5.7037824746562, 5.73657229747919, 5.37063802812766, -0.0100503358535015, 5.55230045301322, 5.55636463387013, 5.27811465923052, 5.16472882943366, 6.30991827822652, 4.60517018598809, 6.05197151494464, 5.96612109776931, 5.78382518232974, 6.05676059375064, -0.0100503358535015, 5.28826703069454, 5.01063529409626, 5.99146454710798, 5.85793315448346, 6.20655576523136, 6.21460809842219, 5.82600010738045, 5.7037824746562, 4.59511985013459, 5.66970849432245, 6.30982736500313, 5.55682806169954, 5.01043527409359, 6.47689543685403, 6.42323072963552, 5.60208191982986, 5.16478597392351, 5.94014493658469, 6.39692965521615, 6.37330272458499, 5.79906235097108, 5.52146091786225, 5.7037491407673, 5.82894561761021, 5.96355363634714, 5.7037491407673, 4.85203026391962, 5.01056862520727, 5.66988092298052, 6.67076632084587, 5.41164605185504, 5.53291506790736, -0.0100503358535015, 5.07511131328062, 6.45990445437753, 6.4297033488768, 6.06366892285691, 5.78382518232974, 6.11959387481851, 4.65109911787649, 5.73657229747919, 5.52146091786225, 5.01056862520727, 6.52201926605497, 5.94014493658469, 4.65396035015752, 2.70805020110221, 6.08672927133376, 4.82791365728096, 6.35437004079735, 6.11809719804135, 6.10924758276437, -0.0100503358535015, 6.61873898351722, 6.4377356496084, 5.85790458264672, 6.06378520868761, 5.63121178182137, 5.90800141310672, 5.92692602597041, 6.32466357548024, 5.07479874490374, 6.05208916892442, -0.0100503358535015, 5.52146091786225, 4.59511985013459, 4.60517018598809, 5.97380961186926, 4.60517018598809, 5.07511131328062, 5.5606431687374, 5.85507192220243, 5.2203017695633, 2.30158459266046, 5.03688766524032, 5.95321735992448, 6.36301086201252, 5.29320431716121, 5.01063529409626, 5.56068163101553, 6.50727771238501, 5.94017125272043, 5.88296020591645, 6.84481547920826, 5.63475388824576, 6.35437004079735, 6.29984957673146, 6.24416690066374, 5.85790458264672, -0.0100503358535015, 3.2188758248682, 6.85538772357226, 5.7037824746562, 5.85790458264672, 5.7037491407673, 4.24849524204936, 5.63478960316925, 5.01056862520727, 6.68210859744981, 5.43786189398593, 5.55682806169954, 5.98896141688986, 6.34388043412633, 5.95324333428778, 5.29330482472449, 0, 4.38140143927996, 5.85793315448346, 5.92692602597041, 6.09807428216624, -4.60517018598809, 3.80666248977032, 5.68697535633982, 6.39691298841059, 5.97888576490112, 5.96612109776931, 6.41344256359036, 5.23585668520543, 5.6383190815119, -0.0100503358535015, 4.59511985013459, 5.37063802812766, 5.29831736654804, 5.01063529409626, 6.05208916892442, 5.7037824746562, 6.35437004079735, 6.38856140554563, 6.21236558586941, 5.85793315448346, 4.8283137373023, 5.62398140445265, 6.13111778792317, 5.57972982598622, 6.13120475011641, 5.88677047599332, 5.56830633509375, 6.35217633202897, 5.75257263882563, 5.82894561761021, 6.08677472691231, 5.47222865598202, 6.08675199938131, 5.97888576490112, 5.7037824746562, 5.7037824746562, 6.46145255123165, 5.85793315448346, 6.21236558586941, 5.63300229259515, 6.90675477864855, 6.21458809822219, 4.8283137373023, 5.61677109766657, 5.82891620541297, -0.0100503358535015, 6.47389069635227, 5.39362754635236, 5.7037824746562, 5.27299955856375, 6.54391184556479, 4.59511985013459, 5.29831736654804, 6.39526159811545, 6.26339826259162, 5.19290129379139, 5.7037824746562, 4.60517018598809, 5.01063529409626, 5.78382518232974, 4.60517018598809, 5.98896141688986, 3.95105139239562, 2.67345875633259, 3.80644024285308, 3.43366457179966, 1.38379123090177, 2.19611284848353, 4.8516395626058, 4.24835237470145, 4.93447393313069, 5.85793315448346, 2.2975725511705, 3.3322045101752, 4.26253902205129, 5.54126354515843, 3.35863776724336, 6.62007320653036, -0.0100503358535015, 5.52146091786225, 5.80663986009591, 4.60517018598809, 4.60517018598809, 4.31748811353631, 5.37063802812766, 5.97888576490112, 6.23244801655052, 5.298267365298, 5.66642668811243, 6.46925031679577, -0.0100503358535015, 6.39691298841059, 6.59303083541847, 6.61873898351722, 6.59303083541847, 5.41610040220442, 6.39691298841059, 5.85793315448346, 5.7037824746562, 5.76832099579377, 6.05441587181544, 5.56068163101553, 5.46806014113513, 5.01063529409626, 4.38202663467388, 4.60517018598809, 5.18738580584075, 4.24835237470145, 5.75257263882563, 4.90527477843843, 5.07517381523383, 5.45958551414416, 5.68697535633982, 5.63478960316925, 5.79909265446053, 6.03787091992214, 5.10594547390058, 6.47697236288968, 5.84932477994686, 5.16478597392351, 6.59304453414244, 5.78382518232974, 6.62005987310813, 5.41610040220442, 4.85203026391962, 4.65396035015752, 5.16478597392351, 6.30991827822652, 5.85779028713555, 4.97673374242057, 5.34710753071747, 4.60517018598809, 5.85392513308592, 5.73009978297357, 5.85507192220243, 5.4380793089232, 5.61677109766657, 5.39362754635236, 5.00394630594546, 5.85793315448346, 5.7037824746562, 5.52146091786225, 5.99146454710798, 5.66642668811243, 5.52146091786225, 6.26339826259162, 6.12029741895095, 6.21460809842219, 4.24849524204936, 1.60743590976343, 5.5606431687374, 4.60517018598809, 5.29831736654804, 5.94017125272043, 4.0943445622221, 6.17378610390194, 5.16478597392351, 4.24405683545043, 2.70805020110221, 5.41610040220442, 5.01063529409626, 5.00394630594546, 3.39952932456146, 2.70805020110221, 2.9704144655697, 4.24778070111149, 4.31748811353631, 3.91202300542815, 4.60517018598809, 5.7037491407673, 3.2188758248682, -0.0100503358535015, 4.094177881665, 5.34233425196481, 2.70738331211451, 4.7874084059763, 4.49969855304586, 3.49499126094852, 4.85203026391962, 3.68887945411394, -0.0100503358535015, 5.34233425196481, -0.0100503358535015, 0, 5.29831736654804, 3.2188758248682, 3.40119738166216, 1.6094379124341, 3.68887945411394, 4.3173547713133, 3.39952932456146, 3.68887945411394, 3.91202300542815, 5.24697143919645, 0, 4.24849524204936, 3.91182298542548, 5.99143954679548, 3.91202300542815, 4.60517018598809, -0.0100503358535015, -0.0100503358535015, -0.0100503358535015, 5.01063529409626, 2.70805020110221, 5.52146091786225, 4.97327950755249, -0.0100503358535015, 3.2188758248682, -0.0100503358535015, -0.0100503358535015, 5.01063529409626, -0.0100503358535015, 2.99573227355399, 4.60517018598809, 5.282137170319, 5.01641853885198, -0.0100503358535015, -0.0100503358535015, 3.97010321650467, 2.30158459266046, 4.094177881665, 2.30258509299405, 4.60467006094641, 4.85203026391962, 4.60507018098776, 4.60507018098776, 4.60517018598809, 4.86753445045558, 4.60507018098776, 5.04979190263078, 4.17438726989564, 4.01926175609774, 4.36944785246702, 4.9592718218077, 4.44265125649032, 4.60507018098776, -0.0100503358535015, 4.60467006094641, 4.60517018598809, 4.60517018598809, 4.51085950651685, 5.04342511691925, 3.2188758248682, 5.01063529409626, 6.0282785202307, 5.78382518232974, 2.30158459266046, -0.0100503358535015, 2.99322914333587, 5.94014493658469, 5.01030190519502, 5.01030190519502, 5.73641099414793, 5.85790458264672, 4.3173547713133, 5.52146091786225, 4.82823373410213, 6.016132769157, 5.298267365298, 3.91182298542548, 5.6970934865054, 5.76828974530548, 5.34233425196481, 5.51745289646471, 5.51745289646471, 5.43372200355424, 5.76519110278484, 5.66642668811243, 6.44413125670044, 6.06145691892802, 6.2709884318583, 4.49980967033027, 4.46590811865458, 3.91202300542815, 5.52142091706223, 5.99146454710798, 5.52146091786225, 5.10588486600335, 5.10588486600335, 4.7874084059763, 5.39340024779473, 5.63121178182137, 5.76519110278484, 4.49423862528081, 5.48043056830425, 5.79906235097108, 5.99146454710798, 4.7874084059763, 12.6487153497895, 0.99498743710662, 14.1417820659208, 14.1417820659208, 13.228756555323, 18.1656268815585, 0.99498743710662, 12.2474487139159, 4.47213595499958, 14.1417820659208, 13.5830777072061, 14.4906866641992, 9.74679434480896, 13.6930639376292, 18.1656268815585, 15.4531550176655, 15.8110720699135, 17.6065328784517, 9.48683298050514, 17.3199307157968, 21.9089023002066, 8.88819441731559, 13.7786066058945, 12.6487153497895, 14.1417820659208, 10.7238052947636, 17.0279182520941, 23.4520787991171, 14.4910317093021, 13.6014705087354, 16.0934769394311, 15.4919333848297, 9.21900211519663, 16.4313724320277, 12.6491106406735, 0.99498743710662, 0.99498743710662, 13.9642400437689, 15.968406307456, 10.7238052947636, 12.6471340627037, 8.66025403784439, 11.4017542509914, 10.952168735004, 7.07106781186548, 16.4298508818553, 0.99498743710662, 17.8843507011018, 18.1656268815585, 15.809807082947, 11.4017542509914, 17.464249196573, 0.1, 21.2132034355964, 13.9387947829072, 22.1357177430505, 9.9498743710662, 11.6167981819432, 14.1417820659208, 16.2785134456436, 18.6815416922694, 17.1755640373177, 14.1067359796659, 12.2454073023318, 17.0293863659264, 9.9498743710662, 17.8885438199983, 15.9687194226713, 15.8113883008419, 23.4518655974317, 14.6628782986152, 18.0277563773199, 15.8113883008419, 15.8110720699135, 17.3202193981485, 3.16069612585582, 15.8113883008419, 7.03491293478462, 15, 16.5828224376914, 0.99498743710662, 13.6014705087354, 15.8113883008419, 14.6628782986152, 7.61577310586391, 13.6930639376292, 15.1327459504216, 9.4841973830156, 0.99498743710662, 6.32455532033676, 16.8816468390972, 5.47631262803723, 7.07036066972541, 11.8313143817583, 17.1752729235957, 7.07106781186548, 16.431676725155, 8.94427190999916, 0.1, 19.9997499984375, 13.6930639376292, 7.07106781186548, 0.99498743710662, 8.06225774829855, 9.48630591958745, 13.5996323479718, 15, 14.142135623731, 10, 3.87298334620742, 9.99949998749937, 13.2268665979513, 7.07106781186548, 10, 14.142135623731, 0.99498743710662, 9.48630591958745, 7.07036066972541, 10, 8.94371287553441, 17.6065328784517, 14.142135623731, 7.07106781186548, 12.8452325786651, 5, 17.2916164657906, 9.9498743710662, 13.7477270848675, 8.66025403784439, 21.9089023002066, 0.99498743710662, 7.07106781186548, 1, 12.2474487139159, 6.48074069840786, 19.9997499984375, 20.6155281280883, 18.411952639522, 17.8871462229166, 9.9498743710662, 0.99498743710662, 7.41619848709566, 9.99949998749937, 13.228756555323, 11.8321595661992, 17.3205080756888, 20, 10.7210074153505, 6.70820393249937, 9.4339811320566, 15.1647617851386, 22.3604561670821, 12.2474487139159, 18.3027320365021, 15.8113883008419, 7.07106781186548, 15, 10, 5.47631262803723, 17.464249196573, 8.83176086632785, 10, 19.9749843554382, 0.1, 10, 6.40312423743285, 20.9759385964014, 8.6596766683289, 7.07106781186548, 0.99498743710662, 2.23606797749979, 7.07106781186548, 9.9498743710662, 7.61577310586391, 7.07106781186548, 0.99498743710662, 15.8113883008419, 5, 17.464249196573, 9.99949998749937, 22.3606797749979, 3.16069612585582, 18.5741756210067, 4.46654228682546, 2.23606797749979, 11.13552872566, 0.99498743710662, 9.87420882906575, 10, 4.47213595499958, 9.98749217771909, 15.8113883008419, 20, 6.92820323027551, 17.1755640373177, 11.4017542509914, 17.606816861659, 8.94427190999916, 12.2474487139159, 9.99949998749937, 8.66025403784439, 11.8321595661992, 7.07106781186548, 8.60232526704263, 10, 11.1803398874989, 16.583123951777, 8.66025403784439, 13.7836860091922, 1, 14.1417820659208, 9.9498743710662, 0.99498743710662, 10.9544511501033, 13.6194713553794, 12.2474487139159, 13.4149170701872, 15.556349186104, 3.16069612585582, 7.07106781186548, 16.2772847858603, 8.66025403784439, 3.87298334620742, 13.6747943311773, 3.87298334620742, 8.42614977317636, 14.142135623731, 9.48683298050514, 0.99498743710662, 0.99498743710662, 17.2916164657906, 5.47722557505166, 0.99498743710662, 0.99498743710662, 8.66025403784439, 8.36660026534076, 9.99949998749937, 12.2474487139159, 9.48683298050514, 5.74456264653803, 10.7238052947636, 3.08220700148449, 0.99498743710662, 18.7082869338697, 15.6524758424985, 21.4009345590327, 16.2788205960997, 9.4339811320566, 0.99498743710662, 15.8110720699135, 15.8113883008419, 22.3606797749979, 10, 1, 17.2916164657906, 18.4390889145858, 3.16069612585582, 7.07106781186548, 0.1, 1.41067359796659, 18.0277563773199, 11.1803398874989, 12.2474487139159, 11.1803398874989, 20, 6.32455532033676, 13.7473633835729, 15.8107558326602, 4.47101778122163, 10.4880884817015, 14.142135623731, 11.1803398874989, 1, 13.4160351818263, 10.7238052947636, 7.07106781186548, 6.32455532033676, 11.1781035958699, 0.99498743710662, 10.5593560409714, 17.7482393492988, 12.2474487139159, 10.8627804912002, 9.9498743710662, 12.2474487139159, 19.9997499984375, 7.74532116829251, 9.61717214153932, 9.9498743710662, 12.2470404588211, 13.0380213222713, 10.9544511501033, 17.3205080756888, 17.3205080756888, 12.2065556157337, 10.4880884817015, 9.9498743710662, 14.9993333185179, 9.4339811320566, 12.2470404588211, 9.99949998749937, 20, 0.1, 0.1, 21.7944947177034, 9.9498743710662, 19.8743553354568, 13.228756555323, 7.07106781186548, 17.3205080756888, 19.9997499984375, 3.1543620591175, 7.68114574786861, 7.07106781186548, 15.2970585407784, 18.7080196707188, 8.48528137423857, 19.9997499984375, 22.3383079036887, 6.70820393249937, 12.2474487139159, 0.99498743710662, 13.6014705087354, 14.2123186004255, 17.0290927532855, 14.8320598704293, 16.7032930884901, 12.2474487139159, 0.99498743710662, 14.0712472794703, 17.3205080756888, 17.3205080756888, 10, 7.74596669241483, 9.48683298050514, 13.4164078649987, 5.47722557505166, 26.4565681825894, 0.99498743710662, 23.4520787991171, 0.99498743710662, 14.4913767461894, 13.3790881602597, 8.94427190999916, 12.4498995979887, 12.2474487139159, 14.456832294801, 14.142135623731, 12.2474487139159, 0.99498743710662, 19.8746069143518, 11.1803398874989, 23.6641078428915, 7.74596669241483, 13.228756555323, 13.4164078649987, 10.9544511501033, 12.6471340627037, 7.06753139363385, 0.99498743710662, 12.6095202129185, 7.07106781186548, 23.6643191323985, 23.4499466950354, 12.2470404588211, 8.94371287553441, 28.0178514522438, 14.8323969741913, 18.7069505799315, 0.99498743710662, 10, 7.41619848709566, 15.8113883008419, 13.4164078649987, 9.48630591958745, 21.67925275465, 7.07106781186548, 20, 16.7332005306815, 8.88819441731559, 19.6837496427891, 15.4916106328554, 11.8321595661992, 11.8317369815256, 9.99949998749937, 0.99498743710662, 7.07036066972541, 12.2065556157337, 13.228756555323, 12.2474487139159, 7.07106781186548, 1, 3.16069612585582, 12.2474487139159, 0.99498743710662, 14.8320598704293, 8.94427190999916, 16.9705627484771, 12.6471340627037, 17.8605710994918, 9.99949998749937, 7.48331477354788, 18.4390889145858, 11.4013157135482, 0.99498743710662, 12.2474487139159, 8.94259470176302, 17.3205080756888, 21.4242852856285, 9.99849988748312, 14.8323969741913, 13.0380213222713, 10, 14.1410749237814, 23.6641078428915, 17.8885438199983, 13.1909059582729, 20, 9.74679434480896, 0.99498743710662, 16.2788205960997, 0.99498743710662, 12.2470404588211, 8.66025403784439, 12.2474487139159, 14.1067359796659, 11.4013157135482, 16.3110392066232, 22.0227155455452, 13.076696830622, 8.71779788708135, 7.07106781186548, 11.3578166916005, 1, 18.7082869338697, 7.07106781186548, 15.809807082947, 18.411952639522, 14.142135623731, 12.6491106406735, 14.1417820659208, 18.7080196707188, 7.07106781186548, 23.789703655153, 9.4339811320566, 19.9749843554382, 15.264009958068, 8.06225774829855, 0.99498743710662, 0.1, 0.99498743710662, 13.228756555323, 0.99498743710662, 11.4013157135482, 0.99498743710662, 15.8113883008419, 12.2474487139159, 8.66025403784439, 15.8104395890816, 13.490737563232, 17.3205080756888, 10.4403065089106, 6.16279157525224, 20, 23.0215116792968, 0.99498743710662, 10.9539947051293, 25.4949014510745, 17.2916164657906, 12.2474487139159, 16.0928555576691, 12.2474487139159, 18.7082869338697, 0.99498743710662, 15.8110720699135, 14.142135623731, 9.48683298050514, 0.99498743710662, 13.6014705087354, 22.3606797749979, 10.3440804327886, 6.70820393249937, 16.7329017208612, 16.6430165534977, 9.74679434480896, 19.4933321933424, 12.0415945787923, 0.99498743710662, 14.142135623731, 19.4679223339318, 0.99498743710662, 13.4164078649987, 13.9588681489582, 18.9736659610103, 21.523475555774, 0.99498743710662, 16.583123951777, 15.8104395890816, 8.66025403784439, 22.3606797749979, 25.6904651573303, 18.9734024360419, 22.9128784747792, 0.99498743710662, 17.3202193981485, 13.4160351818263, 15.8113883008419, 14.142135623731, 3.16227766016838, 21.9086740812857, 15.4596248337403, 19.3907194296653, 0.99498743710662, 19.6214168703486, 17.971922546016, 12.7279220613579, 3.16227766016838, 15.1327459504216, 21.4473774620582, 12.2466321901166, 10.9544511501033, 5, 21.2129677320266, 17.832554500127, 20, 10.4880884817015, 14.1523849580203, 18.4388177495196, 12.2474487139159, 23.0215116792968, 17.3205080756888, 0.99498743710662, 22.3383079036887, 8.94427190999916, 13.8924439894498, 9.9498743710662, 0.99498743710662, 19.9997499984375, 13.2283785854503, 12.6487153497895, 16.124205406779, 13.4164078649987, 16.7329017208612, 23.4518655974317, 30, 22.5831795812724, 15.3297097167559, 19.7481644716667, 0.99498743710662, 17.3205080756888, 10.4880884817015, 12.2474487139159, 19.4923061744884, 9.9498743710662, 0.99498743710662, 19.672315572906, 15.8110720699135, 13.4145443455974, 24.2897097553676, 13.0380213222713, 8.94427190999916, 12.8452325786651, 13.4145443455974, 20.7362002305148, 21.4476105895272, 13.1529464379659, 26.8350517048132, 22.3606797749979, 14.142135623731, 15.1654211942827, 12.2454073023318, 4.99899989997999, 9.99949998749937, 12.328828005938, 9.48683298050514, 9.27092228421747, 0.99498743710662, 18.411952639522, 22.9782505861521, 0.99498743710662, 23.2368242236326, 9.59166304662544, 14.1417820659208, 18.6815416922694, 15, 13.4164078649987, 10, 22.3606797749979, 19.9436706751791, 15.4596248337403, 16.124205406779, 23.4518655974317, 17.1752729235957, 13.7836860091922, 20.7362002305148, 14.1067359796659, 22.259604668547, 15.798417642283, 15.8113883008419, 15, 18.7082869338697, 14.1067359796659, 14.1417820659208, 0.99498743710662, 17.3205080756888, 17.606816861659, 14.6628782986152, 0.99498743710662, 16.057085663345, 16.089748288895, 14, 13.2283785854503, 23.4520787991171, 10, 20.614315414294, 19.7481644716667, 18.0277563773199, 20.6637363513959, 0.99498743710662, 14.0712472794703, 12.2474487139159, 20, 18.7082869338697, 22.270832943561, 22.3606797749979, 18.411952639522, 17.3205080756888, 9.9498743710662, 17.0279182520941, 23.4510127713069, 16.0934769394311, 12.2462239078011, 25.4941169684302, 24.8191458354231, 16.4617739019827, 13.228756555323, 19.4933321933424, 24.4948974278318, 24.207230324843, 18.1656268815585, 15.8113883008419, 17.3202193981485, 18.4390889145858, 19.7228294116235, 17.3202193981485, 11.3137084989848, 12.2470404588211, 17.0293863659264, 28.0891438103763, 14.9666295470958, 15.9022011055074, 0.99498743710662, 12.6487153497895, 25.2784493195291, 24.8995983903355, 20.7352357112235, 18.0277563773199, 21.3232267727002, 10.2323017938292, 17.606816861659, 15.8113883008419, 12.2470404588211, 26.0758508969506, 19.4933321933424, 10.2469507659596, 3.87298334620742, 20.9757002266909, 11.1781035958699, 23.9791576165636, 21.3072757526625, 21.2132034355964, 0.99498743710662, 27.367864366808, 24.9997999992, 18.7080196707188, 20.7364413533277, 16.7032930884901, 19.1825441482615, 19.3649167310371, 23.625621684942, 12.646738710039, 20.6155281280883, 0.99498743710662, 15.8113883008419, 9.9498743710662, 10, 19.824227601599, 10, 12.6487153497895, 16.124205406779, 18.6815416922694, 13.6011028964566, 3.16069612585582, 12.4092707279679, 19.6211620450981, 24.0829815429901, 14.1060270806489, 12.2474487139159, 16.1245154965971, 25.8843582110896, 19.4935886896179, 18.9438644420826, 30.6431068920891, 16.7329017208612, 23.9791576165636, 23.3343095033901, 22.6936114358204, 18.7080196707188, 0.99498743710662, 5, 30.8055189860518, 17.3205080756888, 18.7080196707188, 17.3202193981485, 8.36660026534076, 16.7332005306815, 12.2470404588211, 28.2488937836511, 15.1641023473201, 16.0934769394311, 19.9749843554382, 23.8537208837531, 19.6214168703486, 14.1067359796659, 1, 8.94147638815872, 18.7082869338697, 19.3649167310371, 21.095023109729, 0.1, 6.70820393249937, 17.1755640373177, 24.494693302836, 19.8746069143518, 19.7481644716667, 24.6979756255447, 13.7072973266067, 16.7627563365933, 0.99498743710662, 9.9498743710662, 14.6628782986152, 14.142135623731, 12.2474487139159, 20.6155281280883, 17.3205080756888, 23.9791576165636, 24.3926218353009, 22.3356217733019, 18.7082869338697, 11.1803398874989, 16.6430165534977, 21.4464449268404, 16.2788205960997, 21.4473774620582, 18.9799894625893, 16.1861051522595, 23.9528703916671, 17.7482393492988, 18.4390889145858, 20.976176963403, 15.4269245152752, 20.9759385964014, 19.8746069143518, 17.3205080756888, 17.3205080756888, 25.2980236382212, 18.7082869338697, 22.3356217733019, 16.7182534973005, 31.6069612585582, 22.3604561670821, 11.1803398874989, 16.583123951777, 18.4388177495196, 0.99498743710662, 25.4558441227157, 14.8323969741913, 17.3205080756888, 13.9642400437689, 26.3628526529281, 9.9498743710662, 14.142135623731, 24.4744765010408, 22.9128784747792, 13.4160351818263, 17.3205080756888, 10, 12.2474487139159, 18.0277563773199, 10, 19.9749843554382, 7.21040914234414, 3.80657326213486, 6.7074585350936, 5.56686626388671, 1.99749843554382, 2.99833287011299, 11.3114985744595, 8.3660026296912, 11.7898261225516, 18.7082869338697, 3.1543620591175, 5.29150262212918, 8.42555636145175, 15.9687194226713, 5.3619026473818, 27.3861278752583, 0.99498743710662, 15.8113883008419, 18.2345825288105, 10, 10, 8.66025403784439, 14.6628782986152, 19.8746069143518, 22.561028345357, 14.1417820659208, 17, 25.3968501984006, 0.99498743710662, 24.494693302836, 27.0183271132763, 27.367864366808, 27.0183271132763, 15, 24.494693302836, 18.7082869338697, 17.3205080756888, 17.8885438199983, 20.6395251883371, 16.1245154965971, 15.3948043183407, 12.2474487139159, 8.94427190999916, 10, 13.3790881602597, 8.3660026296912, 17.7482393492988, 11.6189500386223, 12.6491106406735, 15.3297097167559, 17.1755640373177, 16.7332005306815, 18.1659021245849, 20.4694894904587, 12.8452325786651, 25.4950975679639, 18.6279360101972, 13.228756555323, 27.0185121722126, 18.0277563773199, 27.3859453004639, 15, 11.3137084989848, 10.2469507659596, 13.228756555323, 23.4520787991171, 18.7069505799315, 12.0415945787923, 14.4913767461894, 10, 18.6708328684073, 17.5499287747842, 18.6815416922694, 15.1657508881031, 16.583123951777, 14.8323969741913, 12.2065556157337, 18.7082869338697, 17.3205080756888, 15.8113883008419, 20, 17, 15.8113883008419, 22.9128784747792, 21.3307290077015, 22.3606797749979, 8.36660026534076, 2.23383079036887, 16.124205406779, 10, 14.142135623731, 19.4935886896179, 7.74596669241483, 21.9089023002066, 13.228756555323, 8.34805366537614, 3.87298334620742, 15, 12.2474487139159, 12.2065556157337, 5.47265931700485, 3.87298334620742, 4.41588043316392, 8.36361166004257, 8.66025403784439, 7.07106781186548, 10, 17.3202193981485, 5, 0.99498743710662, 7.74532116829251, 14.456832294801, 3.87169213652119, 10.9539947051293, 9.48630591958745, 5.74020905542647, 11.3137084989848, 6.32455532033676, 0.99498743710662, 14.456832294801, 0.99498743710662, 1, 14.142135623731, 5, 5.47722557505166, 2.23606797749979, 6.32455532033676, 8.6596766683289, 5.47265931700485, 6.32455532033676, 7.07106781186548, 13.7836860091922, 1, 8.36660026534076, 7.07036066972541, 19.9997499984375, 7.07106781186548, 10, 0.99498743710662, 0.99498743710662, 0.99498743710662, 12.2474487139159, 3.87298334620742, 15.8113883008419, 12.0208152801713, 0.99498743710662, 5, 0.99498743710662, 0.99498743710662, 12.2474487139159, 0.99498743710662, 4.47213595499958, 10, 14.0281859126546, 12.2829149634767, 0.99498743710662, 0.99498743710662, 7.27942305406136, 3.16069612585582, 7.74532116829251, 3.16227766016838, 9.99749968742185, 11.3137084989848, 9.99949998749937, 9.99949998749937, 10, 11.4017542509914, 9.99949998749937, 12.4895956699967, 8.06225774829855, 7.46056298143779, 8.88819441731559, 11.9369175250565, 9.21954445729289, 9.99949998749937, 0.99498743710662, 9.99749968742185, 10, 10, 9.53939201416946, 12.4498995979887, 5, 12.2474487139159, 20.3715487874634, 18.0277563773199, 3.16069612585582, 0.99498743710662, 4.46654228682546, 19.4933321933424, 12.2454073023318, 12.2454073023318, 17.6053968998146, 18.7080196707188, 8.6596766683289, 15.8113883008419, 11.1798926649588, 20.2482097974117, 14.1417820659208, 7.07036066972541, 17.2626765016321, 17.8882643093174, 14.456832294801, 15.7797338380595, 15.7797338380595, 15.1327459504216, 17.8605710994918, 17, 25.0798724079689, 20.712315177208, 23, 9.48683298050514, 9.32737905308882, 7.07106781186548, 15.8110720699135, 20, 15.8113883008419, 12.8448433232951, 12.8448433232951, 10.9539947051293, 14.8307113787573, 16.7032930884901, 17.8605710994918, 9.46044396421225, 15.4903195577109, 18.1656268815585, 20, 10.9539947051293, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(1018L, 99L), .Dimnames = list(c("1", "2", "3", "5", "6", "8", "9", "10", "13", "15", "17", "18", "20", "22", "24", "26", "28", "29", "32", "33", "36", "38", "39", "40", "41", "42", "43", "46", "47", "48", "52", "53", "57", "58", "61", "62", "64", "65", "69", "70", "71", "74", "76", "77", "78", "79", "81", "83", "84", "85", "86", "90", "91", "92", "93", "96", "97", "99", "100", "101", "102", "104", "105", "107", "108", "110", "111", "112", "115", "116", "117", "118", "120", "121", "122", "124", "128", "134", "135", "139", "140", "141", "142", "144", "145", "146", "148", "150", "152", "154", "155", "156", "157", "158", "160", "162", "164", "165", "166", "167", "171", "173", "174", "175", "176", "178", "180", "181", "182", "184", "186", "187", "190", "194", "195", "198", "200", "201", "202", "203", "204", "206", "209", "210", "211", "212", "213", "216", "217", "219", "220", "224", "226", "228", "230", "231", "232", "234", "236", "237", "238", "240", "241", "242", "243", "245", "246", "249", "250", "251", "254", "257", "259", "260", "261", "263", "264", "269", "270", "272", "275", "278", "279", "281", "284", "286", "287", "288", "290", "291", "293", "295", "298", "301", "303", "305", "307", "309", "312", "313", "314", "318", "319", "321", "322", "325", "327", "329", "331", "333", "334", "335", "338", "339", "342", "343", "344", "345", "346", "347", "349", "350", "351", "354", "356", "357", "358", "360", "361", "364", "366", "369", "370", "372", "373", "375", "376", "377", "378", "379", "382", "383", "384", "387", "389", "392", "393", "394", "396", "397", "398", "399", "400", "402", "404", "405", "407", "410", "411", "414", "416", "418", "421", "422", "426", "427", "428", "429", "430", "433", "434", "435", "436", "437", "438", "439", "441", "442", "445", "451", "452", "453", "455", "456", "460", "462", "464", "466", "469", "470", "471", "473", "474", "476", "481", "483", "487", "493", "496", "498", "499", "503", "506", "509", "510", "512", "513", "515", "516", "518", "519", "520", "524", "526", "527", "529", "530", "531", "533", "535", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "562", "564", "565", "568", "569", "571", "572", "573", "574", "576", "577", "584", "585", "586", "591", "592", "593", "596", "597", "599", "600", "603", "604", "605", "606", "607", "608", "609", "610", "611", "614", "615", "616", "618", "620", "624", "625", "627", "629", "631", "637", "638", "639", "640", "641", "642", "643", "645", "647", "649", "653", "654", "656", "657", "660", "662", "663", "666", "667", "669", "670", "674", "676", "678", "679", "682", "683", "684", "687", "691", "693", "694", "695", "696", "697", "698", "705", "707", "709", "715", "716", "717", "718", "720", "722", "723", "724", "725", "726", "727", "729", "730", "735", "736", "738", "739", "740", "741", "743", "744", "745", "748", "749", "751", "752", "753", "756", "759", "765", "771", "773", "774", "775", "776", "778", "779", "781", "782", "783", "785", "786", "787", "788", "795", "796", "797", "799", "803", "804", "805", "807", "809", "811", "814", "816", "817", "818", "819", "821", "822", "823", "825", "830", "831", "832", "834", "835", "836", "837", "839", "842", "844", "845", "846", "848", "849", "852", "853", "854", "856", "858", "861", "864", "865", "868", "870", "871", "872", "874", "876", "878", "879", "881", "882", "884", "885", "886", "888", "889", "893", "901", "904", "905", "906", "907", "908", "910", "912", "914", "916", "919", "920", "924", "926", "927", "928", "929", "930", "931", "933", "935", "936", "938", "940", "941", "942", "943", "944", "945", "946", "947", "949", "950", "951", "955", "957", "960", "961", "962", "963", "964", "965", "966", "967", "970", "974", "976", "979", "980", "981", "982", "985", "988", "989", "991", "992", "994", "995", "996", "998", "999", "1000", "1001", "1004", "1005", "1008", "1009", "1011", "1012", "1016", "1018", "1020", "1023", "1024", "1025", "1027", "1030", "1034", "1035", "1036", "1038", "1039", "1040", "1042", "1043", "1044", "1046", "1048", "1049", "1051", "1055", "1056", "1058", "1059", "1063", "1064", "1065", "1067", "1068", "1069", "1070", "1071", "1074", "1075", "1087", "1088", "1091", "1092", "1093", "1096", "1097", "1099", "1100", "1102", "1103", "1104", "1105", "1106", "1113", "1114", "1115", "1116", "1118", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1132", "1133", "1134", "1135", "1137", "1138", "1140", "1142", "1144", "1148", "1149", "1150", "1154", "1156", "1160", "1164", "1166", "1169", "1170", "1171", "1173", "1174", "1175", "1176", "1177", "1179", "1180", "1183", "1184", "1188", "1189", "1190", "1191", "1194", "1195", "1198", "1200", "1201", "1204", "1205", "1206", "1207", "1208", "1211", "1212", "1213", "1215", "1216", "1220", "1221", "1222", "1223", "1228", "1230", "1232", "1234", "1235", "1236", "1237", "1239", "1240", "1241", "1243", "1244", "1246", "1247", "1250", "1251", "1253", "1257", "1258", "1262", "1263", "1264", "1265", "1266", "1267", "1269", "1270", "1274", "1276", "1281", "1283", "1284", "1289", "1291", "1296", "1299", "1304", "1307", "1308", "1310", "1312", "1313", "1316", "1317", "1318", "1321", "1322", "1323", "1325", "1326", "1329", "1330", "1332", "1333", "1334", "1336", "1337", "1338", "1339", "1340", "1344", "1345", "1347", "1349", "1352", "1356", "1357", "1359", "1360", "1363", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1374", "1375", "1376", "1380", "1381", "1385", "1386", "1387", "1389", "1390", "1392", "1394", "1395", "1398", "1399", "1400", "1403", "1404", "1405", "1406", "1410", "1417", "1418", "1419", "1420", "1421", "1425", "1426", "1427", "1428", "1429", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1444", "1445", "1446", "1448", "1449", "1450", "1451", "1452", "1454", "1455", "1456", "1457", "1460", "1462", "1463", "1465", "1466", "1468", "1472", "1473", "1474", "1476", "1478", "1479", "1480", "1481", "1483", "1485", "1487", "1488", "1490", "1491", "1492", "1493", "1494", "1496", "1497", "1498", "1500", "1501", "1502", "1503", "1504", "1505", "1508", "1509", "1514", "1515", "1516", "1518", "1519", "1521", "1524", "1525", "1526", "1528", "1529", "1530", "1531", "1532", "1534", "1535", "1537", "1539", "1540", "1541", "1545", "1546", "1550", "1552", "1553", "1555", "1557", "1558", "1559", "1561", "1562", "1564", "1569", "1570", "1574", "1575", "1576", "1579", "1581", "1584", "1585", "1586", "1587", "1589", "1591", "1595", "1599", "1600", "1602", "1604", "1605", "1606", "1607", "1609", "1610", "1615", "1616", "1620", "1624", "1625", "1630", "1631", "1632", "1634", "1637", "1638", "1640", "1645", "1648", "1650", "1652", "1653", "1657", "1658", "1660", "1661", "1662", "1663", "1668", "1669", "1670", "1671", "1673", "1677", "1678", "1680", "1681", "1682", "1683", "1685", "1688", "1693", "1697", "1700", "1701", "1702", "1704", "1706", "1708", "1709", "1710", "1711", "1713", "1717", "1718", "1723", "1724", "1725", "1726", "1730", "1731", "1732", "1733", "1734", "1736", "1737", "1740", "1744", "1745", "1746", "1747", "1748", "1749", "1751", "1753", "1754", "1755", "1759", "1760", "1761", "1762", "1768", "1769", "1774", "1776", "1777", "1778", "1779", "1780", "1782", "1791", "1792", "1793", "1794", "1797", "1799", "1803", "1804", "1805", "1808", "1809", "1813", "1816", "1817", "1822", "1823", "1824", "1827", "1828", "1829", "1830", "1834", "1835", "1836", "1838", "1839", "1840", "1842", "1843", "1845", "1846", "1847", "1848", "1850"), c("D.chrs.n.log", "D.chrs.pnct11.n.log", "D.chrs.pnct13.n.log", "D.chrs.uppr.n.log", "D.ratio.weight.sum.wrds.n", "D.ratio.wrds.stop.n.wrds.n", "D.terms.post.stem.n.log", "D.terms.post.stop.n.log", "D.weight.post.stem.sum", "D.weight.post.stop.sum", "D.weight.sum", "D.weight.sum.stem.stop.Ratio", "D.wrds.n.log", "D.wrds.stop.n.log", "D.wrds.unq.n.log", "cellular.fctr1", "cellular.fctrUnknown", "color.fctrGold", "color.fctrSpace Gray", "color.fctrUnknown", "color.fctrWhite", "condition.fctrFor parts or not working", "condition.fctrManufacturer refurbished", "condition.fctrNew", "condition.fctrNew other (see details)", "condition.fctrSeller refurbished", "prdl.my.fctriPad1", "prdl.my.fctriPad2", "prdl.my.fctriPad3", "prdl.my.fctriPad4", "prdl.my.fctriPadAir", "prdl.my.fctriPadAir2", "prdl.my.fctriPadmini", "prdl.my.fctriPadmini2", "prdl.my.fctriPadmini3", "spdiff.cut.fctr(-100,-10]", "spdiff.cut.fctr(-10,-1]", "spdiff.cut.fctr(-1,0]", "spdiff.cut.fctr(0,1]", "spdiff.cut.fctr(1,10]", "spdiff.cut.fctr(10,100]", "spdiff.cut.fctr(100,1e+03]", "biddable", "sprice.d20nexp", "sprice.log10", "sprice.root2", "startprice.dcm1.is9", "startprice.dcm2.is9", "startprice.dgt1.is9", "startprice.dgt2.is9", "storage.fctr16", "storage.fctr32", "storage.fctr64", "storage.fctrUnknown", "cellular.fctr0:carrier.fctrNone", "cellular.fctr1:carrier.fctrNone", "cellular.fctrUnknown:carrier.fctrNone", "cellular.fctr0:carrier.fctrOther", "cellular.fctr1:carrier.fctrOther", "cellular.fctrUnknown:carrier.fctrOther", "cellular.fctr0:carrier.fctrSprint", "cellular.fctr1:carrier.fctrSprint", "cellular.fctrUnknown:carrier.fctrSprint", "cellular.fctr0:carrier.fctrT-Mobile", "cellular.fctr1:carrier.fctrT-Mobile", "cellular.fctrUnknown:carrier.fctrT-Mobile", "cellular.fctr0:carrier.fctrUnknown", "cellular.fctr1:carrier.fctrUnknown", "cellular.fctrUnknown:carrier.fctrUnknown", "cellular.fctr0:carrier.fctrVerizon", "cellular.fctr1:carrier.fctrVerizon", "cellular.fctrUnknown:carrier.fctrVerizon", "prdl.my.fctrUnknown:.clusterid.fctr2", "prdl.my.fctriPad1:.clusterid.fctr2", "prdl.my.fctriPad2:.clusterid.fctr2", "prdl.my.fctriPad3:.clusterid.fctr2", "prdl.my.fctriPad4:.clusterid.fctr2", "prdl.my.fctriPadAir:.clusterid.fctr2", "prdl.my.fctriPadAir2:.clusterid.fctr2", "prdl.my.fctriPadmini:.clusterid.fctr2", "prdl.my.fctriPadmini2:.clusterid.fctr2", "prdl.my.fctriPadmini3:.clusterid.fctr2", "prdl.my.fctrUnknown:.clusterid.fctr3", "prdl.my.fctriPad1:.clusterid.fctr3", "prdl.my.fctriPad2:.clusterid.fctr3", "prdl.my.fctriPad3:.clusterid.fctr3", "prdl.my.fctriPad4:.clusterid.fctr3", "prdl.my.fctriPadAir:.clusterid.fctr3", "prdl.my.fctriPadAir2:.clusterid.fctr3", "prdl.my.fctriPadmini:.clusterid.fctr3", "prdl.my.fctriPadmini2:.clusterid.fctr3", "prdl.my.fctriPadmini3:.clusterid.fctr3", "spdiff.cut.fctr(-100,-10]:biddable", "spdiff.cut.fctr(-10,-1]:biddable", "spdiff.cut.fctr(-1,0]:biddable", "spdiff.cut.fctr(0,1]:biddable", "spdiff.cut.fctr(1,10]:biddable", "spdiff.cut.fctr(10,100]:biddable", "spdiff.cut.fctr(100,1e+03]:biddable"))), y = structure(c(1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L), .Label = c("N", "Y"), class = "factor", .Names = c("1", "2", "3", "5", "6", "8", "9", "10", "13", "15", "17", "18", "20", "22", "24", "26", "28", "29", "32", "33", "36", "38", "39", "40", "41", "42", "43", "46", "47", "48", "52", "53", "57", "58", "61", "62", "64", "65", "69", "70", "71", "74", "76", "77", "78", "79", "81", "83", "84", "85", "86", "90", "91", "92", "93", "96", "97", "99", "100", "101", "102", "104", "105", "107", "108", "110", "111", "112", "115", "116", "117", "118", "120", "121", "122", "124", "128", "134", "135", "139", "140", "141", "142", "144", "145", "146", "148", "150", "152", "154", "155", "156", "157", "158", "160", "162", "164", "165", "166", "167", "171", "173", "174", "175", "176", "178", "180", "181", "182", "184", "186", "187", "190", "194", "195", "198", "200", "201", "202", "203", "204", "206", "209", "210", "211", "212", "213", "216", "217", "219", "220", "224", "226", "228", "230", "231", "232", "234", "236", "237", "238", "240", "241", "242", "243", "245", "246", "249", "250", "251", "254", "257", "259", "260", "261", "263", "264", "269", "270", "272", "275", "278", "279", "281", "284", "286", "287", "288", "290", "291", "293", "295", "298", "301", "303", "305", "307", "309", "312", "313", "314", "318", "319", "321", "322", "325", "327", "329", "331", "333", "334", "335", "338", "339", "342", "343", "344", "345", "346", "347", "349", "350", "351", "354", "356", "357", "358", "360", "361", "364", "366", "369", "370", "372", "373", "375", "376", "377", "378", "379", "382", "383", "384", "387", "389", "392", "393", "394", "396", "397", "398", "399", "400", "402", "404", "405", "407", "410", "411", "414", "416", "418", "421", "422", "426", "427", "428", "429", "430", "433", "434", "435", "436", "437", "438", "439", "441", "442", "445", "451", "452", "453", "455", "456", "460", "462", "464", "466", "469", "470", "471", "473", "474", "476", "481", "483", "487", "493", "496", "498", "499", "503", "506", "509", "510", "512", "513", "515", "516", "518", "519", "520", "524", "526", "527", "529", "530", "531", "533", "535", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "562", "564", "565", "568", "569", "571", "572", "573", "574", "576", "577", "584", "585", "586", "591", "592", "593", "596", "597", "599", "600", "603", "604", "605", "606", "607", "608", "609", "610", "611", "614", "615", "616", "618", "620", "624", "625", "627", "629", "631", "637", "638", "639", "640", "641", "642", "643", "645", "647", "649", "653", "654", "656", "657", "660", "662", "663", "666", "667", "669", "670", "674", "676", "678", "679", "682", "683", "684", "687", "691", "693", "694", "695", "696", "697", "698", "705", "707", "709", "715", "716", "717", "718", "720", "722", "723", "724", "725", "726", "727", "729", "730", "735", "736", "738", "739", "740", "741", "743", "744", "745", "748", "749", "751", "752", "753", "756", "759", "765", "771", "773", "774", "775", "776", "778", "779", "781", "782", "783", "785", "786", "787", "788", "795", "796", "797", "799", "803", "804", "805", "807", "809", "811", "814", "816", "817", "818", "819", "821", "822", "823", "825", "830", "831", "832", "834", "835", "836", "837", "839", "842", "844", "845", "846", "848", "849", "852", "853", "854", "856", "858", "861", "864", "865", "868", "870", "871", "872", "874", "876", "878", "879", "881", "882", "884", "885", "886", "888", "889", "893", "901", "904", "905", "906", "907", "908", "910", "912", "914", "916", "919", "920", "924", "926", "927", "928", "929", "930", "931", "933", "935", "936", "938", "940", "941", "942", "943", "944", "945", "946", "947", "949", "950", "951", "955", "957", "960", "961", "962", "963", "964", "965", "966", "967", "970", "974", "976", "979", "980", "981", "982", "985", "988", "989", "991", "992", "994", "995", "996", "998", "999", "1000", "1001", "1004", "1005", "1008", "1009", "1011", "1012", "1016", "1018", "1020", "1023", "1024", "1025", "1027", "1030", "1034", "1035", "1036", "1038", "1039", "1040", "1042", "1043", "1044", "1046", "1048", "1049", "1051", "1055", "1056", "1058", "1059", "1063", "1064", "1065", "1067", "1068", "1069", "1070", "1071", "1074", "1075", "1087", "1088", "1091", "1092", "1093", "1096", "1097", "1099", "1100", "1102", "1103", "1104", "1105", "1106", "1113", "1114", "1115", "1116", "1118", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1132", "1133", "1134", "1135", "1137", "1138", "1140", "1142", "1144", "1148", "1149", "1150", "1154", "1156", "1160", "1164", "1166", "1169", "1170", "1171", "1173", "1174", "1175", "1176", "1177", "1179", "1180", "1183", "1184", "1188", "1189", "1190", "1191", "1194", "1195", "1198", "1200", "1201", "1204", "1205", "1206", "1207", "1208", "1211", "1212", "1213", "1215", "1216", "1220", "1221", "1222", "1223", "1228", "1230", "1232", "1234", "1235", "1236", "1237", "1239", "1240", "1241", "1243", "1244", "1246", "1247", "1250", "1251", "1253", "1257", "1258", "1262", "1263", "1264", "1265", "1266", "1267", "1269", "1270", "1274", "1276", "1281", "1283", "1284", "1289", "1291", "1296", "1299", "1304", "1307", "1308", "1310", "1312", "1313", "1316", "1317", "1318", "1321", "1322", "1323", "1325", "1326", "1329", "1330", "1332", "1333", "1334", "1336", "1337", "1338", "1339", "1340", "1344", "1345", "1347", "1349", "1352", "1356", "1357", "1359", "1360", "1363", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1374", "1375", "1376", "1380", "1381", "1385", "1386", "1387", "1389", "1390", "1392", "1394", "1395", "1398", "1399", "1400", "1403", "1404", "1405", "1406", "1410", "1417", "1418", "1419", "1420", "1421", "1425", "1426", "1427", "1428", "1429", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1444", "1445", "1446", "1448", "1449", "1450", "1451", "1452", "1454", "1455", "1456", "1457", "1460", "1462", "1463", "1465", "1466", "1468", "1472", "1473", "1474", "1476", "1478", "1479", "1480", "1481", "1483", "1485", "1487", "1488", "1490", "1491", "1492", "1493", "1494", "1496", "1497", "1498", "1500", "1501", "1502", "1503", "1504", "1505", "1508", "1509", "1514", "1515", "1516", "1518", "1519", "1521", "1524", "1525", "1526", "1528", "1529", "1530", "1531", "1532", "1534", "1535", "1537", "1539", "1540", "1541", "1545", "1546", "1550", "1552", "1553", "1555", "1557", "1558", "1559", "1561", "1562", "1564", "1569", "1570", "1574", "1575", "1576", "1579", "1581", "1584", "1585", "1586", "1587", "1589", "1591", "1595", "1599", "1600", "1602", "1604", "1605", "1606", "1607", "1609", "1610", "1615", "1616", "1620", "1624", "1625", "1630", "1631", "1632", "1634", "1637", "1638", "1640", "1645", "1648", "1650", "1652", "1653", "1657", "1658", "1660", "1661", "1662", "1663", "1668", "1669", "1670", "1671", "1673", "1677", "1678", "1680", "1681", "1682", "1683", "1685", "1688", "1693", "1697", "1700", "1701", "1702", "1704", "1706", "1708", "1709", "1710", "1711", "1713", "1717", "1718", "1723", "1724", "1725", "1726", "1730", "1731", "1732", "1733", "1734", "1736", "1737", "1740", "1744", "1745", "1746", "1747", "1748", "1749", "1751", "1753", "1754", "1755", "1759", "1760", "1761", "1762", "1768", "1769", "1774", "1776", "1777", "1778", "1779", "1780", "1782", "1791", "1792", "1793", "1794", "1797", "1799", "1803", "1804", "1805", "1808", "1809", "1813", "1816", "1817", "1822", "1823", "1824", "1827", "1828", "1829", "1830", "1834", "1835", "1836", "1838", "1839", "1840", "1842", "1843", "1845", "1846", "1847", "1848", "1850")), degree = 1, nprune = 64, keepxy = TRUE, glm = structure(list( family = function (link = "logit") { linktemp <- substitute(link) if (!is.character(linktemp)) linktemp <- deparse(linktemp) okLinks <- c("logit", "probit", "cloglog", "cauchit", "log") if (linktemp %in% okLinks) stats <- make.link(linktemp) else if (is.character(link)) { stats <- make.link(link) linktemp <- link } else { if (inherits(link, "link-glm")) { stats <- link if (!is.null(stats$name)) linktemp <- stats$name } else { stop(gettextf("link \"%s\" not available for binomial family; available links are %s", linktemp, paste(sQuote(okLinks), collapse = ", ")), domain = NA) } } variance <- function(mu) mu * (1 - mu) validmu <- function(mu) all(is.finite(mu)) && all(mu > 0 & mu < 1) dev.resids <- function(y, mu, wt) .Call(C_binomial_dev_resids, y, mu, wt) aic <- function(y, n, mu, wt, dev) { m <- if (any(n > 1)) n else wt -2 * sum(ifelse(m > 0, (wt/m), 0) * dbinom(round(m * y), round(m), mu, log = TRUE)) } initialize <- expression({ if (NCOL(y) == 1) { if (is.factor(y)) y <- y != levels(y)[1L] n <- rep.int(1, nobs) y[weights == 0] <- 0 if (any(y < 0 | y > 1)) stop("y values must be 0 <= y <= 1") mustart <- (weights * y + 0.5)/(weights + 1) m <- weights * y if (any(abs(m - round(m)) > 0.001)) warning("non-integer #successes in a binomial glm!") } else if (NCOL(y) == 2) { if (any(abs(y - round(y)) > 0.001)) warning("non-integer counts in a binomial glm!") n <- y[, 1] + y[, 2] y <- ifelse(n == 0, 0, y[, 1]/n) weights <- weights * n mustart <- (n * y + 0.5)/(n + 1) } else stop("for the 'binomial' family, y must be a vector of 0 and 1's\nor a 2 column matrix where col 1 is no. successes and col 2 is no. failures") }) simfun <- function(object, nsim) { ftd <- fitted(object) n <- length(ftd) ntot <- n * nsim wts <- object$prior.weights if (any(wts%%1 != 0)) stop("cannot simulate from non-integer prior.weights") if (!is.null(m <- object$model)) { y <- model.response(m) if (is.factor(y)) { yy <- factor(1 + rbinom(ntot, size = 1, prob = ftd), labels = levels(y)) split(yy, rep(seq_len(nsim), each = n)) } else if (is.matrix(y) && ncol(y) == 2) { yy <- vector("list", nsim) for (i in seq_len(nsim)) { Y <- rbinom(n, size = wts, prob = ftd) YY <- cbind(Y, wts - Y) colnames(YY) <- colnames(y) yy[[i]] <- YY } yy } else rbinom(ntot, size = wts, prob = ftd)/wts } else rbinom(ntot, size = wts, prob = ftd)/wts } structure(list(family = "binomial", link = linktemp, linkfun = stats$linkfun, linkinv = stats$linkinv, variance = variance, dev.resids = dev.resids, aic = aic, mu.eta = stats$mu.eta, initialize = initialize, validmu = validmu, valideta = stats$valideta, simulate = simfun), class = "family") }), .Names = "family"))
##
## Out of bag statistics:
##
## Accuracy Kappa
## 0% 0.7540 0.5015
## 2.5% 0.7680 0.5319
## 25% 0.7906 0.5806
## 50% 0.8028 0.6034
## 75% 0.8158 0.6307
## 97.5% 0.8387 0.6773
## 100% 0.8496 0.6945
##
## Model Selection Statistics:
##
## Num Terms Num Variables
## Length:1515 Length:1515
## Class :character Class :character
## Mode :character Mode :character
## [1] TRUE
#stop(here"); glb_to_sav()
# From here to save(), this should all be in one function
# these are executed in the same seq twice more:
# fit.data.training & predict.data.new chunks
print(sprintf("%s fit prediction diagnostics:", glb_sel_mdl_id))
## [1] "CSM.X.bagEarth fit prediction diagnostics:"
glb_fitobs_df <- glb_get_predictions(df=glb_fitobs_df, mdl_id=glb_sel_mdl_id,
rsp_var_out=glb_rsp_var_out)
print(sprintf("%s OOB prediction diagnostics:", glb_sel_mdl_id))
## [1] "CSM.X.bagEarth OOB prediction diagnostics:"
glb_OOBobs_df <- glb_get_predictions(df = glb_OOBobs_df, mdl_id = glb_sel_mdl_id,
rsp_var_out = glb_rsp_var_out)
glb_featsimp_df <-
myget_feats_importance(mdl=glb_sel_mdl, featsimp_df=NULL)
glb_featsimp_df[, paste0(glb_sel_mdl_id, ".importance")] <- glb_featsimp_df$importance
#mdl_id <-"RFE.X.glmnet"; glb_featsimp_df <- myget_feats_importance(glb_models_lst[[mdl_id]], glb_featsimp_df); glb_featsimp_df[, paste0(mdl_id, ".importance")] <- glb_featsimp_df$importance; print(glb_featsimp_df)
#print(head(sbst_featsimp_df <- subset(glb_featsimp_df, is.na(RFE.X.glmnet.importance) | (abs(RFE.X.YeoJohnson.glmnet.importance - RFE.X.glmnet.importance) > 0.0001), select=-importance)))
#print(orderBy(~ -cor.y.abs, subset(glb_feats_df, id %in% c(row.names(sbst_featsimp_df), "startprice.dcm1.is9", "D.weight.post.stop.sum"))))
print(glb_featsimp_df)
## importance
## biddable 100.00000000
## spdiff.cut.fctr(10,100] 63.91698828
## spdiff.cut.fctr(-10,-1] 59.43297171
## spdiff.cut.fctr(-1,0] 56.73370396
## spdiff.cut.fctr(1,10] 54.11003294
## spdiff.cut.fctr(0,1] 50.72618776
## sprice.log10 48.68845482
## spdiff.cut.fctr(-100,-10] 46.54349726
## spdiff.cut.fctr(100,1e+03]:biddable 42.56274353
## D.weight.sum.stem.stop.Ratio 40.22875015
## prdl.my.fctriPad1 34.69591329
## sprice.root2 32.56884802
## D.weight.post.stop.sum 29.84596975
## D.chrs.pnct11.n.log 27.94079067
## sprice.d20nexp 26.61299348
## D.wrds.n.log 25.47867052
## D.chrs.n.log 25.32510965
## D.chrs.uppr.n.log 22.30668254
## prdl.my.fctriPadAir2 20.20338098
## prdl.my.fctriPadAir 19.81560245
## D.weight.post.stem.sum 18.95279661
## D.ratio.wrds.stop.n.wrds.n 17.57323375
## D.terms.post.stop.n.log 16.27642872
## D.wrds.stop.n.log 12.44050615
## condition.fctrNew 11.86812409
## D.ratio.weight.sum.wrds.n 11.48014772
## condition.fctrNewother(seedetails) 9.58824839
## startprice.dcm2.is9 7.22097729
## D.terms.post.stem.n.log 6.59278140
## cellular.fctrUnknown 5.44217739
## D.chrs.pnct13.n.log 3.41799947
## D.weight.sum 3.05937743
## cellular.fctr1 1.86952154
## D.wrds.unq.n.log 1.76677745
## color.fctrGold 0.83989382
## color.fctrSpaceGray 0.13258152
## color.fctrUnknown 0.08594036
## condition.fctrForpartsornotworking 0.08594036
## condition.fctrManufacturerrefurbished 0.08594036
## condition.fctrSellerrefurbished 0.08594036
## prdl.my.fctriPad2 0.08594036
## prdl.my.fctriPad3 0.08594036
## prdl.my.fctriPad4 0.08594036
## prdl.my.fctriPadmini 0.08594036
## prdl.my.fctriPadmini2 0.08594036
## prdl.my.fctriPadmini3 0.08594036
## spdiff.cut.fctr(100,1e+03] 0.08594036
## startprice.dcm1.is9 0.08594036
## startprice.dgt1.is9 0.08594036
## startprice.dgt2.is9 0.08594036
## storage.fctr16 0.08594036
## storage.fctr32 0.08594036
## storage.fctr64 0.08594036
## storage.fctrUnknown 0.08594036
## cellular.fctr0:carrier.fctrNone 0.08594036
## cellular.fctr1:carrier.fctrNone 0.08594036
## cellular.fctrUnknown:carrier.fctrNone 0.08594036
## cellular.fctr0:carrier.fctrOther 0.08594036
## cellular.fctr1:carrier.fctrOther 0.08594036
## cellular.fctrUnknown:carrier.fctrOther 0.08594036
## cellular.fctr0:carrier.fctrSprint 0.08594036
## cellular.fctr1:carrier.fctrSprint 0.08594036
## cellular.fctrUnknown:carrier.fctrSprint 0.08594036
## cellular.fctr0:carrier.fctrT-Mobile 0.08594036
## cellular.fctr1:carrier.fctrT-Mobile 0.08594036
## cellular.fctrUnknown:carrier.fctrT-Mobile 0.08594036
## cellular.fctr0:carrier.fctrUnknown 0.08594036
## cellular.fctr1:carrier.fctrUnknown 0.08594036
## cellular.fctrUnknown:carrier.fctrUnknown 0.08594036
## cellular.fctr0:carrier.fctrVerizon 0.08594036
## cellular.fctr1:carrier.fctrVerizon 0.08594036
## cellular.fctrUnknown:carrier.fctrVerizon 0.08594036
## prdl.my.fctrUnknown:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad1:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad3:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad4:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini3:.clusterid.fctr2 0.08594036
## prdl.my.fctrUnknown:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad1:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad3:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad4:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadAir:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadAir2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini3:.clusterid.fctr3 0.08594036
## spdiff.cut.fctr(-100,-10]:biddable 0.08594036
## spdiff.cut.fctr(-10,-1]:biddable 0.08594036
## spdiff.cut.fctr(-1,0]:biddable 0.08594036
## spdiff.cut.fctr(0,1]:biddable 0.08594036
## spdiff.cut.fctr(1,10]:biddable 0.08594036
## spdiff.cut.fctr(10,100]:biddable 0.08594036
## color.fctrWhite 0.00000000
## CSM.X.bagEarth.importance
## biddable 100.00000000
## spdiff.cut.fctr(10,100] 63.91698828
## spdiff.cut.fctr(-10,-1] 59.43297171
## spdiff.cut.fctr(-1,0] 56.73370396
## spdiff.cut.fctr(1,10] 54.11003294
## spdiff.cut.fctr(0,1] 50.72618776
## sprice.log10 48.68845482
## spdiff.cut.fctr(-100,-10] 46.54349726
## spdiff.cut.fctr(100,1e+03]:biddable 42.56274353
## D.weight.sum.stem.stop.Ratio 40.22875015
## prdl.my.fctriPad1 34.69591329
## sprice.root2 32.56884802
## D.weight.post.stop.sum 29.84596975
## D.chrs.pnct11.n.log 27.94079067
## sprice.d20nexp 26.61299348
## D.wrds.n.log 25.47867052
## D.chrs.n.log 25.32510965
## D.chrs.uppr.n.log 22.30668254
## prdl.my.fctriPadAir2 20.20338098
## prdl.my.fctriPadAir 19.81560245
## D.weight.post.stem.sum 18.95279661
## D.ratio.wrds.stop.n.wrds.n 17.57323375
## D.terms.post.stop.n.log 16.27642872
## D.wrds.stop.n.log 12.44050615
## condition.fctrNew 11.86812409
## D.ratio.weight.sum.wrds.n 11.48014772
## condition.fctrNewother(seedetails) 9.58824839
## startprice.dcm2.is9 7.22097729
## D.terms.post.stem.n.log 6.59278140
## cellular.fctrUnknown 5.44217739
## D.chrs.pnct13.n.log 3.41799947
## D.weight.sum 3.05937743
## cellular.fctr1 1.86952154
## D.wrds.unq.n.log 1.76677745
## color.fctrGold 0.83989382
## color.fctrSpaceGray 0.13258152
## color.fctrUnknown 0.08594036
## condition.fctrForpartsornotworking 0.08594036
## condition.fctrManufacturerrefurbished 0.08594036
## condition.fctrSellerrefurbished 0.08594036
## prdl.my.fctriPad2 0.08594036
## prdl.my.fctriPad3 0.08594036
## prdl.my.fctriPad4 0.08594036
## prdl.my.fctriPadmini 0.08594036
## prdl.my.fctriPadmini2 0.08594036
## prdl.my.fctriPadmini3 0.08594036
## spdiff.cut.fctr(100,1e+03] 0.08594036
## startprice.dcm1.is9 0.08594036
## startprice.dgt1.is9 0.08594036
## startprice.dgt2.is9 0.08594036
## storage.fctr16 0.08594036
## storage.fctr32 0.08594036
## storage.fctr64 0.08594036
## storage.fctrUnknown 0.08594036
## cellular.fctr0:carrier.fctrNone 0.08594036
## cellular.fctr1:carrier.fctrNone 0.08594036
## cellular.fctrUnknown:carrier.fctrNone 0.08594036
## cellular.fctr0:carrier.fctrOther 0.08594036
## cellular.fctr1:carrier.fctrOther 0.08594036
## cellular.fctrUnknown:carrier.fctrOther 0.08594036
## cellular.fctr0:carrier.fctrSprint 0.08594036
## cellular.fctr1:carrier.fctrSprint 0.08594036
## cellular.fctrUnknown:carrier.fctrSprint 0.08594036
## cellular.fctr0:carrier.fctrT-Mobile 0.08594036
## cellular.fctr1:carrier.fctrT-Mobile 0.08594036
## cellular.fctrUnknown:carrier.fctrT-Mobile 0.08594036
## cellular.fctr0:carrier.fctrUnknown 0.08594036
## cellular.fctr1:carrier.fctrUnknown 0.08594036
## cellular.fctrUnknown:carrier.fctrUnknown 0.08594036
## cellular.fctr0:carrier.fctrVerizon 0.08594036
## cellular.fctr1:carrier.fctrVerizon 0.08594036
## cellular.fctrUnknown:carrier.fctrVerizon 0.08594036
## prdl.my.fctrUnknown:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad1:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad3:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad4:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini3:.clusterid.fctr2 0.08594036
## prdl.my.fctrUnknown:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad1:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad3:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad4:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadAir:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadAir2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini3:.clusterid.fctr3 0.08594036
## spdiff.cut.fctr(-100,-10]:biddable 0.08594036
## spdiff.cut.fctr(-10,-1]:biddable 0.08594036
## spdiff.cut.fctr(-1,0]:biddable 0.08594036
## spdiff.cut.fctr(0,1]:biddable 0.08594036
## spdiff.cut.fctr(1,10]:biddable 0.08594036
## spdiff.cut.fctr(10,100]:biddable 0.08594036
## color.fctrWhite 0.00000000
# Used again in fit.data.training & predict.data.new chunks
glb_analytics_diag_plots <- function(obs_df, mdl_id, prob_threshold=NULL) {
if (!is.null(featsimp_df <- glb_featsimp_df)) {
featsimp_df$feat <- gsub("`(.*?)`", "\\1", row.names(featsimp_df))
featsimp_df$feat.interact <- gsub("(.*?):(.*)", "\\2", featsimp_df$feat)
featsimp_df$feat <- gsub("(.*?):(.*)", "\\1", featsimp_df$feat)
featsimp_df$feat.interact <- ifelse(featsimp_df$feat.interact == featsimp_df$feat,
NA, featsimp_df$feat.interact)
featsimp_df$feat <- gsub("(.*?)\\.fctr(.*)", "\\1\\.fctr", featsimp_df$feat)
featsimp_df$feat.interact <- gsub("(.*?)\\.fctr(.*)", "\\1\\.fctr", featsimp_df$feat.interact)
featsimp_df <- orderBy(~ -importance.max, summaryBy(importance ~ feat + feat.interact,
data=featsimp_df, FUN=max))
#rex_str=":(.*)"; txt_vctr=tail(featsimp_df$feat); ret_lst <- regexec(rex_str, txt_vctr); ret_lst <- regmatches(txt_vctr, ret_lst); ret_vctr <- sapply(1:length(ret_lst), function(pos_ix) ifelse(length(ret_lst[[pos_ix]]) > 0, ret_lst[[pos_ix]], "")); print(ret_vctr <- ret_vctr[ret_vctr != ""])
featsimp_df <- subset(featsimp_df, !is.na(importance.max))
if (nrow(featsimp_df) > 5) {
warning("Limiting important feature scatter plots to 5 out of ", nrow(featsimp_df))
featsimp_df <- head(featsimp_df, 5)
}
# if (!all(is.na(featsimp_df$feat.interact)))
# stop("not implemented yet")
rsp_var_out <- paste0(glb_rsp_var_out, mdl_id)
for (var in featsimp_df$feat) {
plot_df <- melt(obs_df, id.vars=var,
measure.vars=c(glb_rsp_var, rsp_var_out))
# if (var == "<feat_name>") print(myplot_scatter(plot_df, var, "value",
# facet_colcol_name="variable") +
# geom_vline(xintercept=<divider_val>, linetype="dotted")) else
print(myplot_scatter(plot_df, var, "value", colorcol_name="variable",
facet_colcol_name="variable", jitter=TRUE) +
guides(color=FALSE))
}
}
if (glb_is_regression) {
if (is.null(featsimp_df) || (nrow(featsimp_df) == 0))
warning("No important features in glb_fin_mdl") else
print(myplot_prediction_regression(df=obs_df,
feat_x=ifelse(nrow(featsimp_df) > 1, featsimp_df$feat[2],
".rownames"),
feat_y=featsimp_df$feat[1],
rsp_var=glb_rsp_var, rsp_var_out=rsp_var_out,
id_vars=glb_id_var)
# + facet_wrap(reformulate(featsimp_df$feat[2])) # if [1 or 2] is a factor
# + geom_point(aes_string(color="<col_name>.fctr")) # to color the plot
)
}
if (glb_is_classification) {
if (is.null(featsimp_df) || (nrow(featsimp_df) == 0))
warning("No features in selected model are statistically important")
else print(myplot_prediction_classification(df=obs_df,
feat_x=ifelse(nrow(featsimp_df) > 1, featsimp_df$feat[2],
".rownames"),
feat_y=featsimp_df$feat[1],
rsp_var=glb_rsp_var,
rsp_var_out=rsp_var_out,
id_vars=glb_id_var,
prob_threshold=prob_threshold)
# + geom_hline(yintercept=<divider_val>, linetype = "dotted")
)
}
}
if (glb_is_classification && glb_is_binomial)
glb_analytics_diag_plots(obs_df = glb_OOBobs_df, mdl_id = glb_sel_mdl_id,
prob_threshold = glb_models_df[glb_models_df$id == glb_sel_mdl_id,
"opt.prob.threshold.OOB"]) else
glb_analytics_diag_plots(obs_df=glb_OOBobs_df, mdl_id=glb_sel_mdl_id)
## Warning in glb_analytics_diag_plots(obs_df = glb_OOBobs_df, mdl_id =
## glb_sel_mdl_id, : Limiting important feature scatter plots to 5 out of 32
## [1] "Min/Max Boundaries: "
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 66 10066 N 0.02791287
## 1593 11602 N 0.55393719
## 689 10690 N 0.56219336
## 511 10512 N 0.57868264
## 1028 11031 N 0.59424982
## 54 10054 N 0.61059174
## 1787 11796 N 0.65332370
## 465 10466 N 0.66539810
## 1739 11748 N 0.71020940
## 381 10382 N 0.78799545
## 1826 11836 N 0.90621315
## 1691 11700 N 0.94326348
## 199 10199 N 0.98455426
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 66 N FALSE
## 1593 Y TRUE
## 689 Y TRUE
## 511 Y TRUE
## 1028 Y TRUE
## 54 Y TRUE
## 1787 Y TRUE
## 465 Y TRUE
## 1739 Y TRUE
## 381 Y TRUE
## 1826 Y TRUE
## 1691 Y TRUE
## 199 Y TRUE
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 66 0.02791287
## 1593 0.55393719
## 689 0.56219336
## 511 0.57868264
## 1028 0.59424982
## 54 0.61059174
## 1787 0.65332370
## 465 0.66539810
## 1739 0.71020940
## 381 0.78799545
## 1826 0.90621315
## 1691 0.94326348
## 199 0.98455426
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 66 TRUE
## 1593 FALSE
## 689 FALSE
## 511 FALSE
## 1028 FALSE
## 54 FALSE
## 1787 FALSE
## 465 FALSE
## 1739 FALSE
## 381 FALSE
## 1826 FALSE
## 1691 FALSE
## 199 FALSE
## sold.fctr.predict.CSM.X.bagEarth.error .label
## 66 0.00000000 10066
## 1593 0.05393719 11602
## 689 0.06219336 10690
## 511 0.07868264 10512
## 1028 0.09424982 11031
## 54 0.11059174 10054
## 1787 0.15332370 11796
## 465 0.16539810 10466
## 1739 0.21020940 11748
## 381 0.28799545 10382
## 1826 0.40621315 11836
## 1691 0.44326348 11700
## 199 0.48455426 10199
## [1] "Inaccurate: "
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 457 10458 Y 0.03192611
## 1506 11514 Y 0.03399084
## 1807 11817 Y 0.05510239
## 1696 11705 Y 0.05587668
## 843 10846 Y 0.05661374
## 1596 11605 Y 0.06100574
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 457 N TRUE
## 1506 N TRUE
## 1807 N TRUE
## 1696 N TRUE
## 843 N TRUE
## 1596 N TRUE
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 457 0.9680739
## 1506 0.9660092
## 1807 0.9448976
## 1696 0.9441233
## 843 0.9433863
## 1596 0.9389943
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 457 FALSE
## 1506 FALSE
## 1807 FALSE
## 1696 FALSE
## 843 FALSE
## 1596 FALSE
## sold.fctr.predict.CSM.X.bagEarth.error
## 457 -0.4680739
## 1506 -0.4660092
## 1807 -0.4448976
## 1696 -0.4441233
## 843 -0.4433863
## 1596 -0.4389943
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 457 10458 Y 0.03192611
## 161 10161 Y 0.24039231
## 1716 11725 Y 0.32305326
## 734 10735 N 0.56687385
## 1085 11090 N 0.67652861
## 742 10743 N 0.94344020
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 457 N TRUE
## 161 N TRUE
## 1716 N TRUE
## 734 Y TRUE
## 1085 Y TRUE
## 742 Y TRUE
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 457 0.9680739
## 161 0.7596077
## 1716 0.6769467
## 734 0.5668738
## 1085 0.6765286
## 742 0.9434402
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 457 FALSE
## 161 FALSE
## 1716 FALSE
## 734 FALSE
## 1085 FALSE
## 742 FALSE
## sold.fctr.predict.CSM.X.bagEarth.error
## 457 -0.46807389
## 161 -0.25960769
## 1716 -0.17694674
## 734 0.06687385
## 1085 0.17652861
## 742 0.44344020
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 199 10199 N 0.9845543
## 412 10413 N 0.9846001
## 1464 11471 N 0.9861783
## 490 10491 N 0.9876202
## 737 10738 N 0.9892631
## 1384 11391 N 0.9926966
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 199 Y TRUE
## 412 Y TRUE
## 1464 Y TRUE
## 490 Y TRUE
## 737 Y TRUE
## 1384 Y TRUE
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 199 0.9845543
## 412 0.9846001
## 1464 0.9861783
## 490 0.9876202
## 737 0.9892631
## 1384 0.9926966
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 199 FALSE
## 412 FALSE
## 1464 FALSE
## 490 FALSE
## 737 FALSE
## 1384 FALSE
## sold.fctr.predict.CSM.X.bagEarth.error
## 199 0.4845543
## 412 0.4846001
## 1464 0.4861783
## 490 0.4876202
## 737 0.4892631
## 1384 0.4926966
glb_ctgry_df <- merge(glb_ctgry_df,
myget_category_stats(obs_df = glb_fitobs_df, mdl_id = glb_sel_mdl_id, label = "fit"),
by = glb_category_var, all = TRUE)
row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
glb_ctgry_df <- merge(glb_ctgry_df,
myget_category_stats(obs_df=glb_OOBobs_df, mdl_id=glb_sel_mdl_id, label="OOB"),
#by=glb_category_var, all=TRUE) glb_ctgry-df already contains .n.OOB ?
all=TRUE)
row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
if (any(grepl("OOB", glbMdlMetricsEval)))
print(orderBy(~-err.abs.OOB.mean, glb_ctgry_df)) else
print(orderBy(~-err.abs.fit.mean, glb_ctgry_df))
## prdl.my.fctr .n.OOB .n.Fit .n.Tst .freqRatio.Fit .freqRatio.OOB
## iPad1 iPad1 95 130 88 0.12745098 0.11445783
## iPadmini2 iPadmini2 53 54 56 0.05294118 0.06385542
## iPadmini iPadmini 123 154 111 0.15098039 0.14819277
## iPadAir2 iPadAir2 69 102 62 0.10000000 0.08313253
## iPad3 iPad3 61 92 55 0.09019608 0.07349398
## iPad2 iPad2 142 144 154 0.14117647 0.17108434
## iPadmini3 iPadmini3 36 54 38 0.05294118 0.04337349
## Unknown Unknown 96 108 92 0.10588235 0.11566265
## iPad4 iPad4 73 84 68 0.08235294 0.08795181
## iPadAir iPadAir 82 98 74 0.09607843 0.09879518
## .freqRatio.Tst err.abs.fit.sum err.abs.fit.mean .n.fit
## iPad1 0.11027569 21.92498 0.1686537 130
## iPadmini2 0.07017544 13.60767 0.2519939 54
## iPadmini 0.13909774 28.35769 0.1841409 154
## iPadAir2 0.07769424 18.39394 0.1803327 102
## iPad3 0.06892231 19.30601 0.2098479 92
## iPad2 0.19298246 26.26756 0.1824136 144
## iPadmini3 0.04761905 10.91522 0.2021337 54
## Unknown 0.11528822 24.25180 0.2245537 108
## iPad4 0.08521303 12.91294 0.1537254 84
## iPadAir 0.09273183 14.69546 0.1499537 98
## err.abs.OOB.sum err.abs.OOB.mean
## iPad1 30.191199 0.3178021
## iPadmini2 16.497317 0.3112701
## iPadmini 35.413123 0.2879116
## iPadAir2 18.188133 0.2635961
## iPad3 15.577574 0.2553701
## iPad2 34.346223 0.2418748
## iPadmini3 8.705077 0.2418077
## Unknown 23.071138 0.2403244
## iPad4 16.959354 0.2323199
## iPadAir 17.574463 0.2143227
print(colSums(glb_ctgry_df[, -grep(glb_category_var, names(glb_ctgry_df))]))
## .n.OOB .n.Fit .n.Tst .freqRatio.Fit
## 830.000000 1020.000000 798.000000 1.000000
## .freqRatio.OOB .freqRatio.Tst err.abs.fit.sum err.abs.fit.mean
## 1.000000 1.000000 190.633259 1.907749
## .n.fit err.abs.OOB.sum err.abs.OOB.mean
## 1020.000000 216.523602 2.606599
write.csv(glb_OOBobs_df[, c(glb_id_var,
grep(glb_rsp_var, names(glb_OOBobs_df), fixed=TRUE, value=TRUE))],
paste0(gsub(".", "_", paste0(glb_out_pfx, glb_sel_mdl_id), fixed=TRUE),
"_OOBobs.csv"), row.names=FALSE)
glb_chunks_df <- myadd_chunk(glb_chunks_df, "fit.models", major.inc=FALSE)
## label step_major step_minor label_minor bgn end elapsed
## 12 fit.models 6 2 2 850.472 918.725 68.254
## 13 fit.models 6 3 3 918.727 NA NA
# if (sum(is.na(glb_allobs_df$D.P.http)) > 0)
# stop("fit.models_3: Why is this happening ?")
#stop(here"); glb_to_sav()
sync_glb_obs_df <- function() {
# Merge or cbind ?
for (col in setdiff(names(glb_fitobs_df), names(glb_trnobs_df)))
glb_trnobs_df[glb_trnobs_df$.lcn == "Fit", col] <<- glb_fitobs_df[, col]
for (col in setdiff(names(glb_fitobs_df), names(glb_allobs_df)))
glb_allobs_df[glb_allobs_df$.lcn == "Fit", col] <<- glb_fitobs_df[, col]
if (all(is.na(glb_newobs_df[, glb_rsp_var])))
for (col in setdiff(names(glb_OOBobs_df), names(glb_trnobs_df)))
glb_trnobs_df[glb_trnobs_df$.lcn == "OOB", col] <<- glb_OOBobs_df[, col]
for (col in setdiff(names(glb_OOBobs_df), names(glb_allobs_df)))
glb_allobs_df[glb_allobs_df$.lcn == "OOB", col] <<- glb_OOBobs_df[, col]
}
sync_glb_obs_df()
print(setdiff(names(glb_newobs_df), names(glb_allobs_df)))
## character(0)
if (glb_save_envir)
save(glb_feats_df,
glb_allobs_df, #glb_trnobs_df, glb_fitobs_df, glb_OOBobs_df, glb_newobs_df,
glb_models_df, dsp_models_df, glb_models_lst, glb_sel_mdl, glb_sel_mdl_id,
glb_model_type,
file=paste0(glb_out_pfx, "selmdl_dsk.RData"))
#load(paste0(glb_out_pfx, "selmdl_dsk.RData"))
rm(ret_lst)
## Warning in rm(ret_lst): object 'ret_lst' not found
replay.petrisim(pn=glb_analytics_pn,
replay.trans=(glb_analytics_avl_objs <- c(glb_analytics_avl_objs,
"model.selected")), flip_coord=TRUE)
## time trans "bgn " "fit.data.training.all " "predict.data.new " "end "
## 0.0000 multiple enabled transitions: data.training.all data.new model.selected firing: data.training.all
## 1.0000 1 2 1 0 0
## 1.0000 multiple enabled transitions: data.training.all data.new model.selected model.final data.training.all.prediction firing: data.new
## 2.0000 2 1 1 1 0
## 2.0000 multiple enabled transitions: data.training.all data.new model.selected model.final data.training.all.prediction data.new.prediction firing: model.selected
## 3.0000 3 0 2 1 0
glb_chunks_df <- myadd_chunk(glb_chunks_df, "fit.data.training", major.inc=TRUE)
## label step_major step_minor label_minor bgn end
## 13 fit.models 6 3 3 918.727 924.674
## 14 fit.data.training 7 0 0 924.675 NA
## elapsed
## 13 5.948
## 14 NA
7.0: fit data training#load(paste0(glb_inp_pfx, "dsk.RData"))
#stop(here"); glb_to_sav()
if (!is.null(glb_fin_mdl_id) && (glb_fin_mdl_id %in% names(glb_models_lst))) {
warning("Final model same as user selected model")
glb_fin_mdl <- glb_models_lst[[glb_fin_mdl_id]]
} else
# if (nrow(glb_fitobs_df) + length(glbObsFitOutliers) == nrow(glb_trnobs_df))
if (!all(is.na(glb_newobs_df[, glb_rsp_var])))
{
warning("Final model same as glb_sel_mdl_id")
glb_fin_mdl_id <- paste0("Final.", glb_sel_mdl_id)
glb_fin_mdl <- glb_sel_mdl
glb_models_lst[[glb_fin_mdl_id]] <- glb_fin_mdl
} else {
if (grepl("RFE", glb_sel_mdl_id) ||
(!is.null(glb_mdl_ensemble) && grepl("RFE", glb_mdl_ensemble))) {
indep_vars <- myadjust_interaction_feats(subset(glb_feats_df,
!nzv & (exclude.as.feat != 1))[, "id"])
rfe_trn_results <-
myrun_rfe(glb_trnobs_df, indep_vars, glbRFESizes[["Final"]])
if (!isTRUE(all.equal(sort(predictors(rfe_trn_results)),
sort(predictors(rfe_fit_results))))) {
print("Diffs predictors(rfe_trn_results) vs. predictors(rfe_fit_results):")
print(setdiff(predictors(rfe_trn_results), predictors(rfe_fit_results)))
print("Diffs predictors(rfe_fit_results) vs. predictors(rfe_trn_results):")
print(setdiff(predictors(rfe_fit_results), predictors(rfe_trn_results)))
}
}
if (grepl("Ensemble", glb_sel_mdl_id)) {
# Find which models are relevant
mdlimp_df <- subset(myget_feats_importance(glb_sel_mdl), importance > 5)
# Fit selected models on glb_trnobs_df
for (mdl_id in gsub(".prob", "",
gsub(glb_rsp_var_out, "", row.names(mdlimp_df), fixed = TRUE),
fixed = TRUE)) {
mdl_id_components <- unlist(strsplit(mdl_id, "[.]"))
mdlIdPfx <- paste0(c(head(mdl_id_components, -1), "Train"),
collapse = ".")
if (grepl("RFE\\.X\\.", mdlIdPfx))
mdlIndepVars <- myadjust_interaction_feats(myextract_actual_feats(
predictors(rfe_trn_results))) else
mdlIndepVars <- trim(unlist(
strsplit(glb_models_df[glb_models_df$id == mdl_id, "feats"], "[,]")))
ret_lst <-
myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = mdlIdPfx,
type = glb_model_type, tune.df = glb_tune_models_df,
trainControl.method = "repeatedcv",
trainControl.number = glb_rcv_n_folds,
trainControl.repeats = glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method = tail(mdl_id_components, 1))),
indep_vars = mdlIndepVars,
rsp_var = glb_rsp_var,
fit_df = glb_trnobs_df, OOB_df = NULL)
glb_trnobs_df <- glb_get_predictions(df = glb_trnobs_df,
mdl_id = tail(glb_models_df$id, 1),
rsp_var_out = glb_rsp_var_out,
prob_threshold_def =
subset(glb_models_df, id == mdl_id)$opt.prob.threshold.OOB)
glb_newobs_df <- glb_get_predictions(df = glb_newobs_df,
mdl_id = tail(glb_models_df$id, 1),
rsp_var_out = glb_rsp_var_out,
prob_threshold_def =
subset(glb_models_df, id == mdl_id)$opt.prob.threshold.OOB)
}
}
# "Final" model
if ((model_method <- glb_sel_mdl$method) == "custom")
# get actual method from the mdl_id
model_method <- tail(unlist(strsplit(glb_sel_mdl_id, "[.]")), 1)
if (grepl("Ensemble", glb_sel_mdl_id)) {
# Find which models are relevant
mdlimp_df <- subset(myget_feats_importance(glb_sel_mdl), importance > 5)
if (glb_is_classification && glb_is_binomial)
indep_vars_vctr <- gsub("(.*)\\.(.*)\\.prob", "\\1\\.Train\\.\\2\\.prob",
row.names(mdlimp_df)) else
indep_vars_vctr <- gsub("(.*)\\.(.*)", "\\1\\.Train\\.\\2",
row.names(mdlimp_df))
} else
if (grepl("RFE.X", glb_sel_mdl_id, fixed = TRUE)) {
indep_vars_vctr <- myextract_actual_feats(predictors(rfe_trn_results))
} else indep_vars_vctr <-
trim(unlist(strsplit(glb_models_df[glb_models_df$id ==
glb_sel_mdl_id
, "feats"], "[,]")))
# Discontinuing use of tune_finmdl_df;
# since final model needs to be cved on glb_trnobs_df
# tune_finmdl_df <- NULL
# if (nrow(glb_sel_mdl$bestTune) > 0) {
# for (param in names(glb_sel_mdl$bestTune)) {
# #print(sprintf("param: %s", param))
# if (glb_sel_mdl$bestTune[1, param] != "none")
# tune_finmdl_df <- rbind(tune_finmdl_df,
# data.frame(parameter=param,
# min=glb_sel_mdl$bestTune[1, param],
# max=glb_sel_mdl$bestTune[1, param],
# by=1)) # by val does not matter
# }
# }
# Sync with parameters in mydsutils.R
#stop(here"); glb_to_sav(); glb_models_lst <- sav_models_lst; glb_models_df <- sav_models_df
if (!is.null(glb_preproc_methods) &&
((match_pos <- regexpr(gsub(".", "\\.",
paste(glb_preproc_methods, collapse = "|"),
fixed = TRUE), glb_sel_mdl_id)) != -1))
ths_preProcess <- str_sub(glb_sel_mdl_id, match_pos,
match_pos + attr(match_pos, "match.length") - 1) else
ths_preProcess <- NULL
mdl_id_pfx <- ifelse(grepl("Ensemble", glb_sel_mdl_id),
"Final.Ensemble", "Final")
trnobs_df <- if (is.null(glbObsTrnOutliers[[mdl_id_pfx]])) glb_trnobs_df else
glb_trnobs_df[!(glb_trnobs_df[, glb_id_var] %in%
glbObsTrnOutliers[[mdl_id_pfx]]), ]
# Force fitting of Final.glm to identify outliers
method_vctr <-
unique(c("glm", tail(unlist(strsplit(glb_sel_mdl_id, "[.]")), 1)))
for (method in method_vctr) {
#source("caret_nominalTrainWorkflow.R")
# glmnet requires at least 2 indep vars
if ((length(indep_vars_vctr) == 1) && (method %in% "glmnet"))
next
ret_lst <-
myfit_mdl(mdl_specs_lst = myinit_mdl_specs_lst(mdl_specs_lst = list(
id.prefix = mdl_id_pfx,
type = glb_model_type, trainControl.method = "repeatedcv",
trainControl.number = glb_rcv_n_folds,
trainControl.repeats = glb_rcv_n_repeats,
trainControl.classProbs = glb_is_classification,
trainControl.summaryFunction = glbMdlMetricSummaryFn,
train.metric = glbMdlMetricSummary,
train.maximize = glbMdlMetricMaximize,
train.method = method,
train.preProcess = ths_preProcess)),
indep_vars = indep_vars_vctr, rsp_var = glb_rsp_var,
fit_df = trnobs_df, OOB_df = NULL)
}
if ((length(method_vctr) == 1) || (method != "glm")) {
glb_fin_mdl <- glb_models_lst[[length(glb_models_lst)]]
glb_fin_mdl_id <- glb_models_df[length(glb_models_lst), "id"]
}
}
## [1] "fitting model: Final.glm"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## + Fold1.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep1: parameter=none
## + Fold2.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep1: parameter=none
## + Fold3.Rep1: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep1: parameter=none
## + Fold1.Rep2: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep2: parameter=none
## + Fold2.Rep2: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep2: parameter=none
## + Fold3.Rep2: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep2: parameter=none
## + Fold1.Rep3: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold1.Rep3: parameter=none
## + Fold2.Rep3: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold2.Rep3: parameter=none
## + Fold3.Rep3: parameter=none
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## - Fold3.Rep3: parameter=none
## Aggregating results
## Fitting final model on full training set
##
## Call:
## NULL
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.0014 -0.5699 -0.1128 0.4336 3.4191
##
## Coefficients: (26 not defined because of singularities)
## Estimate Std. Error z value
## (Intercept) 4.623e+00 1.993e+01 0.232
## D.chrs.n.log -1.973e+00 1.699e+00 -1.162
## D.chrs.pnct11.n.log -1.363e-01 2.759e-01 -0.494
## D.chrs.pnct13.n.log -2.334e-01 2.532e-01 -0.922
## D.chrs.uppr.n.log 3.262e-01 1.529e+00 0.213
## D.ratio.weight.sum.wrds.n 6.029e-03 2.352e-01 0.026
## D.ratio.wrds.stop.n.wrds.n -6.359e+00 2.611e+00 -2.435
## D.terms.post.stem.n.log 1.187e+01 6.280e+00 1.890
## D.terms.post.stop.n.log -1.671e+01 6.331e+00 -2.639
## D.weight.post.stem.sum -1.491e+00 3.568e+00 -0.418
## D.weight.post.stop.sum 1.343e+00 3.461e+00 0.388
## D.weight.sum NA NA NA
## D.weight.sum.stem.stop.Ratio 2.656e+00 2.005e+01 0.132
## D.wrds.n.log 5.509e+00 1.631e+00 3.377
## D.wrds.stop.n.log 2.581e-01 4.552e-01 0.567
## D.wrds.unq.n.log NA NA NA
## cellular.fctr1 1.786e-01 2.397e-01 0.745
## cellular.fctrUnknown -5.536e-01 3.662e-01 -1.512
## color.fctrGold -1.265e-01 4.812e-01 -0.263
## `color.fctrSpace Gray` -1.621e-02 2.887e-01 -0.056
## color.fctrUnknown -8.510e-02 1.982e-01 -0.429
## color.fctrWhite -1.645e-01 2.187e-01 -0.752
## `condition.fctrFor parts or not working` -7.634e-01 2.999e-01 -2.546
## `condition.fctrManufacturer refurbished` -2.888e-01 5.053e-01 -0.572
## condition.fctrNew 1.877e-01 2.749e-01 0.683
## `condition.fctrNew other (see details)` 6.739e-01 3.975e-01 1.695
## `condition.fctrSeller refurbished` -8.121e-01 3.327e-01 -2.441
## prdl.my.fctriPad1 -1.050e+00 4.472e-01 -2.349
## prdl.my.fctriPad2 -5.842e-01 3.937e-01 -1.484
## prdl.my.fctriPad3 5.357e-02 4.346e-01 0.123
## prdl.my.fctriPad4 7.321e-01 4.565e-01 1.604
## prdl.my.fctriPadAir 1.152e+00 4.517e-01 2.551
## prdl.my.fctriPadAir2 1.453e+00 5.103e-01 2.848
## prdl.my.fctriPadmini -4.332e-01 3.882e-01 -1.116
## prdl.my.fctriPadmini2 4.239e-01 4.693e-01 0.903
## prdl.my.fctriPadmini3 3.852e-01 5.395e-01 0.714
## `spdiff.cut.fctr(-100,-10]` 2.606e+00 6.355e-01 4.101
## `spdiff.cut.fctr(-10,-1]` 4.551e+00 6.810e-01 6.682
## `spdiff.cut.fctr(-1,0]` 5.446e+00 9.424e-01 5.779
## `spdiff.cut.fctr(0,1]` 5.033e+00 1.193e+00 4.220
## `spdiff.cut.fctr(1,10]` 4.104e+00 6.841e-01 5.999
## `spdiff.cut.fctr(10,100]` 3.402e+00 6.623e-01 5.136
## `spdiff.cut.fctr(100,1e+03]` 3.134e-01 9.229e-01 0.340
## biddable 2.520e+00 6.674e-01 3.775
## sprice.d20nexp -1.470e+00 1.880e+00 -0.782
## sprice.log10 -3.763e-01 5.114e-01 -0.736
## sprice.root2 -1.460e-01 8.116e-02 -1.799
## startprice.dcm1.is9 -6.856e-01 2.677e-01 -2.561
## startprice.dcm2.is9 2.096e-01 2.653e-01 0.790
## startprice.dgt1.is9 1.224e-01 1.898e-01 0.645
## startprice.dgt2.is9 9.442e-02 2.184e-01 0.432
## storage.fctr16 -9.436e-01 4.542e-01 -2.077
## storage.fctr32 -9.154e-01 4.679e-01 -1.957
## storage.fctr64 -3.425e-01 4.470e-01 -0.766
## storage.fctrUnknown -2.631e-01 5.712e-01 -0.461
## `cellular.fctr0:carrier.fctrNone` NA NA NA
## `cellular.fctr1:carrier.fctrNone` NA NA NA
## `cellular.fctrUnknown:carrier.fctrNone` NA NA NA
## `cellular.fctr0:carrier.fctrOther` NA NA NA
## `cellular.fctr1:carrier.fctrOther` 1.549e+01 4.588e+03 0.003
## `cellular.fctrUnknown:carrier.fctrOther` NA NA NA
## `cellular.fctr0:carrier.fctrSprint` NA NA NA
## `cellular.fctr1:carrier.fctrSprint` 5.007e-01 5.657e-01 0.885
## `cellular.fctrUnknown:carrier.fctrSprint` NA NA NA
## `cellular.fctr0:carrier.fctrT-Mobile` NA NA NA
## `cellular.fctr1:carrier.fctrT-Mobile` 3.401e-01 6.881e-01 0.494
## `cellular.fctrUnknown:carrier.fctrT-Mobile` NA NA NA
## `cellular.fctr0:carrier.fctrUnknown` NA NA NA
## `cellular.fctr1:carrier.fctrUnknown` -6.596e-02 4.095e-01 -0.161
## `cellular.fctrUnknown:carrier.fctrUnknown` NA NA NA
## `cellular.fctr0:carrier.fctrVerizon` NA NA NA
## `cellular.fctr1:carrier.fctrVerizon` 1.680e-01 3.408e-01 0.493
## `cellular.fctrUnknown:carrier.fctrVerizon` NA NA NA
## `prdl.my.fctrUnknown:.clusterid.fctr2` 9.614e-01 6.342e-01 1.516
## `prdl.my.fctriPad1:.clusterid.fctr2` -1.001e+00 5.939e-01 -1.686
## `prdl.my.fctriPad2:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPad3:.clusterid.fctr2` -7.473e-01 7.360e-01 -1.015
## `prdl.my.fctriPad4:.clusterid.fctr2` -2.589e-01 7.983e-01 -0.324
## `prdl.my.fctriPadAir:.clusterid.fctr2` 4.535e-01 6.035e-01 0.751
## `prdl.my.fctriPadAir2:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPadmini:.clusterid.fctr2` NA NA NA
## `prdl.my.fctriPadmini2:.clusterid.fctr2` -5.166e-01 8.845e-01 -0.584
## `prdl.my.fctriPadmini3:.clusterid.fctr2` NA NA NA
## `prdl.my.fctrUnknown:.clusterid.fctr3` 3.479e-01 8.324e-01 0.418
## `prdl.my.fctriPad1:.clusterid.fctr3` -1.588e+00 7.293e-01 -2.178
## `prdl.my.fctriPad2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPad3:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPad4:.clusterid.fctr3` -1.827e+01 1.081e+03 -0.017
## `prdl.my.fctriPadAir:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadAir2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini2:.clusterid.fctr3` NA NA NA
## `prdl.my.fctriPadmini3:.clusterid.fctr3` NA NA NA
## `spdiff.cut.fctr(-100,-10]:biddable` -5.555e-01 6.918e-01 -0.803
## `spdiff.cut.fctr(-10,-1]:biddable` -1.321e+00 7.960e-01 -1.659
## `spdiff.cut.fctr(-1,0]:biddable` 1.355e+01 5.601e+02 0.024
## `spdiff.cut.fctr(0,1]:biddable` -4.321e-01 1.661e+00 -0.260
## `spdiff.cut.fctr(1,10]:biddable` -4.377e-01 8.323e-01 -0.526
## `spdiff.cut.fctr(10,100]:biddable` -2.973e-01 7.557e-01 -0.393
## `spdiff.cut.fctr(100,1e+03]:biddable` 2.682e+00 1.404e+00 1.910
## Pr(>|z|)
## (Intercept) 0.816569
## D.chrs.n.log 0.245368
## D.chrs.pnct11.n.log 0.621266
## D.chrs.pnct13.n.log 0.356778
## D.chrs.uppr.n.log 0.831007
## D.ratio.weight.sum.wrds.n 0.979553
## D.ratio.wrds.stop.n.wrds.n 0.014872 *
## D.terms.post.stem.n.log 0.058697 .
## D.terms.post.stop.n.log 0.008320 **
## D.weight.post.stem.sum 0.676039
## D.weight.post.stop.sum 0.698105
## D.weight.sum NA
## D.weight.sum.stem.stop.Ratio 0.894601
## D.wrds.n.log 0.000732 ***
## D.wrds.stop.n.log 0.570716
## D.wrds.unq.n.log NA
## cellular.fctr1 0.456130
## cellular.fctrUnknown 0.130551
## color.fctrGold 0.792580
## `color.fctrSpace Gray` 0.955217
## color.fctrUnknown 0.667617
## color.fctrWhite 0.451838
## `condition.fctrFor parts or not working` 0.010905 *
## `condition.fctrManufacturer refurbished` 0.567578
## condition.fctrNew 0.494764
## `condition.fctrNew other (see details)` 0.089982 .
## `condition.fctrSeller refurbished` 0.014656 *
## prdl.my.fctriPad1 0.018845 *
## prdl.my.fctriPad2 0.137872
## prdl.my.fctriPad3 0.901887
## prdl.my.fctriPad4 0.108762
## prdl.my.fctriPadAir 0.010733 *
## prdl.my.fctriPadAir2 0.004395 **
## prdl.my.fctriPadmini 0.264494
## prdl.my.fctriPadmini2 0.366425
## prdl.my.fctriPadmini3 0.475229
## `spdiff.cut.fctr(-100,-10]` 4.11e-05 ***
## `spdiff.cut.fctr(-10,-1]` 2.36e-11 ***
## `spdiff.cut.fctr(-1,0]` 7.52e-09 ***
## `spdiff.cut.fctr(0,1]` 2.45e-05 ***
## `spdiff.cut.fctr(1,10]` 1.98e-09 ***
## `spdiff.cut.fctr(10,100]` 2.81e-07 ***
## `spdiff.cut.fctr(100,1e+03]` 0.734172
## biddable 0.000160 ***
## sprice.d20nexp 0.434258
## sprice.log10 0.461787
## sprice.root2 0.072076 .
## startprice.dcm1.is9 0.010445 *
## startprice.dcm2.is9 0.429563
## startprice.dgt1.is9 0.518915
## startprice.dgt2.is9 0.665442
## storage.fctr16 0.037780 *
## storage.fctr32 0.050405 .
## storage.fctr64 0.443525
## storage.fctrUnknown 0.645141
## `cellular.fctr0:carrier.fctrNone` NA
## `cellular.fctr1:carrier.fctrNone` NA
## `cellular.fctrUnknown:carrier.fctrNone` NA
## `cellular.fctr0:carrier.fctrOther` NA
## `cellular.fctr1:carrier.fctrOther` 0.997306
## `cellular.fctrUnknown:carrier.fctrOther` NA
## `cellular.fctr0:carrier.fctrSprint` NA
## `cellular.fctr1:carrier.fctrSprint` 0.376118
## `cellular.fctrUnknown:carrier.fctrSprint` NA
## `cellular.fctr0:carrier.fctrT-Mobile` NA
## `cellular.fctr1:carrier.fctrT-Mobile` 0.621159
## `cellular.fctrUnknown:carrier.fctrT-Mobile` NA
## `cellular.fctr0:carrier.fctrUnknown` NA
## `cellular.fctr1:carrier.fctrUnknown` 0.872018
## `cellular.fctrUnknown:carrier.fctrUnknown` NA
## `cellular.fctr0:carrier.fctrVerizon` NA
## `cellular.fctr1:carrier.fctrVerizon` 0.621934
## `cellular.fctrUnknown:carrier.fctrVerizon` NA
## `prdl.my.fctrUnknown:.clusterid.fctr2` 0.129524
## `prdl.my.fctriPad1:.clusterid.fctr2` 0.091886 .
## `prdl.my.fctriPad2:.clusterid.fctr2` NA
## `prdl.my.fctriPad3:.clusterid.fctr2` 0.309906
## `prdl.my.fctriPad4:.clusterid.fctr2` 0.745713
## `prdl.my.fctriPadAir:.clusterid.fctr2` 0.452377
## `prdl.my.fctriPadAir2:.clusterid.fctr2` NA
## `prdl.my.fctriPadmini:.clusterid.fctr2` NA
## `prdl.my.fctriPadmini2:.clusterid.fctr2` 0.559230
## `prdl.my.fctriPadmini3:.clusterid.fctr2` NA
## `prdl.my.fctrUnknown:.clusterid.fctr3` 0.675986
## `prdl.my.fctriPad1:.clusterid.fctr3` 0.029416 *
## `prdl.my.fctriPad2:.clusterid.fctr3` NA
## `prdl.my.fctriPad3:.clusterid.fctr3` NA
## `prdl.my.fctriPad4:.clusterid.fctr3` 0.986509
## `prdl.my.fctriPadAir:.clusterid.fctr3` NA
## `prdl.my.fctriPadAir2:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini2:.clusterid.fctr3` NA
## `prdl.my.fctriPadmini3:.clusterid.fctr3` NA
## `spdiff.cut.fctr(-100,-10]:biddable` 0.422005
## `spdiff.cut.fctr(-10,-1]:biddable` 0.097085 .
## `spdiff.cut.fctr(-1,0]:biddable` 0.980697
## `spdiff.cut.fctr(0,1]:biddable` 0.794718
## `spdiff.cut.fctr(1,10]:biddable` 0.598918
## `spdiff.cut.fctr(10,100]:biddable` 0.694025
## `spdiff.cut.fctr(100,1e+03]:biddable` 0.056160 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2554.0 on 1849 degrees of freedom
## Residual deviance: 1313.4 on 1776 degrees of freedom
## AIC: 1461.4
##
## Number of Fisher Scoring iterations: 17
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type =
## ifelse(type == : prediction from a rank-deficient fit may be misleading
## sold.fctr sold.fctr.predict.Final.glm.N sold.fctr.predict.Final.glm.Y
## 1 N 826 169
## 2 Y 127 728
## Prediction
## Reference N Y
## N 826 169
## Y 127 728
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.400000e-01 6.792653e-01 8.224876e-01 8.564267e-01 5.378378e-01
## AccuracyPValue McnemarPValue
## 9.406461e-167 1.716862e-02
## id
## 1 Final.glm
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 1 4.357 0.399
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8403009 0.8934673 0.7871345 0.9199495
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8310502 0.8160349
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8224876 0.8564267 0.6281456
## max.AccuracySD.fit max.KappaSD.fit
## 1 0.01021335 0.0209186
## [1] "fitting model: Final.bagEarth"
## [1] " indep_vars: spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr"
## + : degree=1, nprune=64
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## - : degree=1, nprune=64
## Aggregating results
## Fitting final model on full training set
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
##
## Call:
## bagEarth.default(x = structure(c(3.91202300542815, 4.61512051684126, 0, 0, 4.61512051684126, 0, 0, 0, 0, 0, 4.53259949315326, 0, 4.58496747867057, 0, 4.59511985013459, 0, 4.61512051684126, 4.61512051684126, 0, 0, 2.83321334405622, 4.44265125649032, 3.3322045101752, 0, 0, 4.53259949315326, 2.83321334405622, 4.62497281328427, 4.57471097850338, 4.27666611901606, 4.57471097850338, 4.59511985013459, 4.61512051684126, 0, 0, 4.34380542185368, 3.04452243772342, 0, 0, 4.62497281328427, 0, 2.70805020110221, 0, 4.40671924726425, 4.59511985013459, 0, 4.61512051684126, 4.57471097850338, 2.484906649788, 0, 0, 4.38202663467388, 0, 0, 2.07944154167984, 0, 0, 0, 3.46573590279973, 4.26267987704132, 0, 4.61512051684126, 4.57471097850338, 4.61512051684126, 0, 0, 0, 4.54329478227, 0, 4.62497281328427, 4.59511985013459, 4.46590811865458, 0, 0, 0, 4.54329478227, 4.59511985013459, 0, 0, 0, 0, 0, 0, 0, 0, 4.54329478227, 0, 4.61512051684126, 4.00733318523247, 0, 0, 0, 4.57471097850338, 0, 0, 4.46590811865458, 0, 3.25809653802148, 3.52636052461616, 0, 4.56434819146784, 0, 3.63758615972639, 4.54329478227, 0, 0, 0, 0, 0, 4.59511985013459, 4.55387689160054, 0, 4.60517018598809, 4.61512051684126, 3.04452243772342, 0, 0, 0, 3.71357206670431, 0, 4.59511985013459, 0, 0, 0, 0, 3.46573590279973, 0, 3.04452243772342, 2.70805020110221, 3.52636052461616, 0, 4.61512051684126, 0, 0, 0, 4.57471097850338, 0, 4.61512051684126, 4.55387689160054, 0, 4.11087386417331, 0, 0, 4.52178857704904, 0, 4.62497281328427, 3.80666248977032, 0, 4.58496747867057, 0, 4.59511985013459, 4.56434819146784, 0, 4.20469261939097, 3.66356164612965, 0, 0, 4.57471097850338, 0, 4.56434819146784, 0, 0, 0, 4.54329478227, 3.52636052461616, 0, 3.68887945411394, 0, 0, 0, 4.61512051684126, 0, 0, 4.02535169073515, 0, 0, 0, 4.64439089914137, 2.99573227355399, 0, 0, 0, 4.30406509320417, 0, 0, 0, 0, 4.52178857704904, 4.00733318523247, 0, 0, 0, 0, 4.60517018598809, 0, 4.07753744390572, 2.63905732961526, 4.47733681447821, 4.00733318523247, 0, 3.85014760171006, 0, 4.59511985013459, 4.54329478227, 4.40671924726425, 0, 0, 3.93182563272433, 0, 0, 0, 4.52178857704904, 0, 0, 0, 4.62497281328427, 0, 0, 4.61512051684126, 3.25809653802148, 4.45434729625351, 3.46573590279973, 3.25809653802148, 0, 3.04452243772342, 4.59511985013459, 3.76120011569356, 0, 0, 0, 4.59511985013459, 0, 0, 0, 3.46573590279973, 4.30406509320417, 0, 0, 2.07944154167984, 0, 2.19722457733622, 0, 0, 4.61512051684126, 0, 0, 0, 3.73766961828337, 0, 0, 4.62497281328427, 3.09104245335832, 0, 0, 0, 0, 0, 0, 0, 0, 4.56434819146784, 0, 0, 0, 0, 4.59511985013459, 0, 0, 0, 0, 2.99573227355399, 0, 0, 0, 4.56434819146784, 0, 0, 0, 4.62497281328427, 0, 2.484906649788, 4.61512051684126, 3.91202300542815, 0, 0, 0, 0, 0, 4.62497281328427, 3.63758615972639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.58496747867057, 0, 4.61512051684126, 3.61091791264422, 0, 3.43398720448515, 0, 0, 0, 0, 4.60517018598809, 4.58496747867057, 0, 0, 0, 0, 0, 4.61512051684126, 4.60517018598809, 0, 0, 0, 0, 4.55387689160054, 0, 0, 0, 3.91202300542815, 0, 4.56434819146784, 0, 4.55387689160054, 3.68887945411394, 4.23410650459726, 0, 4.62497281328427, 0, 0, 0, 0, 2.83321334405622, 0, 4.61512051684126, 3.29583686600433, 0, 4.56434819146784, 0, 2.77258872223978, 4.48863636973214, 0, 0, 0, 2.07944154167984, 0, 4.62497281328427, 0, 3.55534806148941, 0, 0, 4.48863636973214, 0, 4.61512051684126, 4.60517018598809, 0, 4.59511985013459, 0, 0, 0, 0, 0, 0, 0, 0, 3.04452243772342, 0, 0, 0, 0, 4.61512051684126, 0, 0, 0, 4.58496747867057, 3.52636052461616, 0, 3.91202300542815, 3.85014760171006, 4.61512051684126, 2.94443897916644, 0, 0, 0, 0, 4.62497281328427, 0, 0, 3.93182563272433, 0, 0, 0, 0, 4.56434819146784, 0, 4.39444915467244, 0, 4.06044301054642, 4.46590811865458, 0, 4.30406509320417, 0, 0, 0, 0, 0, 0, 0, 4.0943445622221, 0, 2.39789527279837, 4.62497281328427, 0, 0, 0, 4.55387689160054, 4.59511985013459, 4.52178857704904, 0, 0, 4.61512051684126, 0, 0, 4.60517018598809, 0, 4.62497281328427, 0, 4.56434819146784, 3.49650756146648, 0, 0, 4.58496747867057, 0, 0, 4.59511985013459, 0, 0, 4.11087386417331, 0, 0, 3.66356164612965, 3.46573590279973, 0, 3.73766961828337, 0, 0, 0, 0, 0, 0, 0, 0, 3.04452243772342, 0, 0, 4.57471097850338, 4.61512051684126, 4.59511985013459, 4.62497281328427, 0, 4.60517018598809, 0, 4.59511985013459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.52636052461616, 0, 4.61512051684126, 0, 2.89037175789616, 0, 0, 0, 4.54329478227, 0, 4.35670882668959, 0, 0, 0, 0, 0, 0, 0, 4.61512051684126, 4.52178857704904, 0, 0, 4.62497281328427, 0, 0, 4.55387689160054, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 3.36729582998647, 0, 0, 4.52178857704904, 4.58496747867057, 4.60517018598809, 0, 4.55387689160054, 0, 0, 0, 3.87120101090789, 0, 4.46590811865458, 4.56434819146784, 0, 3.93182563272433, 4.58496747867057, 0, 0, 0, 4.58496747867057, 0, 0, 4.61512051684126, 2.99573227355399, 0, 4.24849524204936, 3.09104245335832, 3.52636052461616, 0, 3.29583686600433, 0, 4.55387689160054, 0, 0, 0, 4.4188406077966, 0, 4.00733318523247, 0, 0, 3.2188758248682, 0, 4.29045944114839, 4.60517018598809, 0, 4.33073334028633, 4.60517018598809, 0, 4.52178857704904, 0, 4.59511985013459, 0, 0, 0, 4.24849524204936, 3.80666248977032, 4.51085950651685, 4.21950770517611, 0, 0, 4.60517018598809, 0, 4.62497281328427, 0, 4.61512051684126, 0, 4.56434819146784, 4.60517018598809, 0, 4.60517018598809, 4.60517018598809, 0, 0, 0, 0, 0, 4.00733318523247, 0, 0, 4.60517018598809, 4.60517018598809, 0, 0, 4.47733681447821, 4.4188406077966, 0, 0, 0, 4.62497281328427, 0, 0, 0, 4.60517018598809, 3.98898404656427, 0, 0, 0, 0, 0, 0, 4.58496747867057, 4.59511985013459, 0, 4.55387689160054, 3.29583686600433, 4.52178857704904, 0, 2.30258509299405, 0, 4.49980967033027, 4.60517018598809, 0, 4.59511985013459, 0, 4.57471097850338, 0, 3.8286413964891, 4.57471097850338, 0, 4.29045944114839, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 4.60517018598809, 4.61512051684126, 4.58496747867057, 0, 0, 4.60517018598809, 4.14313472639153, 0, 0, 3.97029191355212, 0, 3.25809653802148, 0, 4.56434819146784, 0, 4.58496747867057, 4.38202663467388, 4.62497281328427, 3.80666248977032, 4.61512051684126, 3.3322045101752, 0, 3.80666248977032, 0, 0, 0, 0, 0, 4.55387689160054, 4.58496747867057, 3.43398720448515, 4.61512051684126, 0, 4.62497281328427, 0, 4.60517018598809, 0, 4.59511985013459, 0, 0, 4.55387689160054, 3.36729582998647, 4.55387689160054, 0, 3.89182029811063, 4.61512051684126, 4.62497281328427, 2.56494935746154, 4.52178857704904, 4.38202663467388, 4.60517018598809, 3.85014760171006, 0, 4.54329478227, 0, 0, 0, 0, 0, 3.85014760171006, 4.59511985013459, 3.52636052461616, 4.52178857704904, 0, 0, 0, 4.26267987704132, 4.54329478227, 4.61512051684126, 1.6094379124341, 0, 4.60517018598809, 4.04305126783455, 0, 0, 3.73766961828337, 4.56434819146784, 4.59511985013459, 0, 0, 4.54329478227, 0, 0, 4.55387689160054, 0, 0, 0, 4.59511985013459, 0, 0, 4.57471097850338, 3.91202300542815, 0, 3.91202300542815, 4.04305126783455, 4.48863636973214, 0, 0, 3.36729582998647, 0, 0, 0, 0, 0, 3.49650756146648, 0, 4.61512051684126, 3.52636052461616, 2.70805020110221, 4.53259949315326, 0, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 3.2188758248682, 0, 0, 4.18965474202643, 0, 0, 2.77258872223978, 0, 0, 0, 0, 4.55387689160054, 4.60517018598809, 4.56434819146784, 0, 0, 4.61512051684126, 0, 0, 0, 0, 0, 0, 0, 0, 3.68887945411394, 0, 0, 0, 4.17438726989564, 3.55534806148941, 0, 0, 0, 4.61512051684126, 2.70805020110221, 0, 0, 0, 4.60517018598809, 0, 0, 0, 0, 4.56434819146784, 3.52636052461616, 0, 0, 2.63905732961526, 3.55534806148941, 0, 0, 0, 4.56434819146784, 4.55387689160054, 0, 4.24849524204936, 0, 0, 0, 4.55387689160054, 0, 4.60517018598809, 0, 4.57471097850338, 4.49980967033027, 4.55387689160054, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 4.60517018598809, 4.59511985013459, 0, 0, 0, 4.52178857704904, 4.62497281328427, 0, 4.61512051684126, 4.06044301054642, 0, 0, 4.61512051684126, 0, 0, 0, 4.04305126783455, 2.77258872223978, 4.0943445622221, 4.59511985013459, 0, 2.39789527279837, 0, 4.61512051684126, 0, 0, 3.3322045101752, 4.56434819146784, 3.91202300542815, 0, 4.56434819146784, 4.59511985013459, 4.53259949315326, 4.33073334028633, 3.55534806148941, 4.61512051684126, 0, 0, 0, 3.52636052461616, 0, 4.57471097850338, 0, 4.61512051684126, 4.60517018598809, 0, 0, 4.57471097850338, 4.35670882668959, 4.60517018598809, 0, 4.62497281328427, 0, 4.58496747867057, 4.62497281328427, 0, 0, 0, 2.63905732961526, 0, 4.56434819146784, 0, 4.58496747867057, 0, 0, 3.78418963391826, 0, 0, 0, 4.56434819146784, 4.60517018598809, 0, 4.60517018598809, 4.14313472639153, 0, 0, 4.62497281328427, 0, 4.56434819146784, 0, 0, 0, 3.98898404656427, 4.60517018598809, 0, 0, 4.60517018598809, 4.0943445622221, 4.48863636973214, 0, 0, 4.62497281328427, 4.55387689160054, 0, 0, 0, 4.52178857704904, 0, 4.59511985013459, 4.48863636973214, 0, 0, 0, 0, 4.58496747867057, 4.59511985013459, 4.61512051684126, 4.57471097850338, 0, 0, 3.73766961828337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.55387689160054, 3.04452243772342, 4.57471097850338, 4.27666611901606, 4.51085950651685, 3.91202300542815, 3.87120101090789, 0, 2.99573227355399, 0, 0, 0, 0, 4.61512051684126, 0, 0, 4.15888308335967, 4.57471097850338, 0, 0, 0, 4.48863636973214, 4.30406509320417, 0, 0, 0, 0, 0, 4.63472898822964, 0, 3.68887945411394, 0, 4.55387689160054, 2.30258509299405, 2.83321334405622, 0, 0, 1.38629436111989, 0, 0, 3.25809653802148, 0, 0, 4.20469261939097, 4.62497281328427, 4.58496747867057, 0, 4.56434819146784, 4.21950770517611, 0, 4.59511985013459, 4.40671924726425, 3.97029191355212, 0, 4.58496747867057, 0, 4.58496747867057, 4.00733318523247, 4.59511985013459, 0, 0, 0, 4.62497281328427, 3.29583686600433, 0, 4.55387689160054, 0, 4.61512051684126, 0, 0, 2.56494935746154, 0, 0, 0, 0, 3.3322045101752, 0, 4.21950770517611, 0, 3.52636052461616, 4.49980967033027, 0, 4.54329478227, 3.98898404656427, 4.07753744390572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.0943445622221, 3.09104245335832, 0, 0, 1.6094379124341, 0, 0, 4.58496747867057, 0, 0, 4.58496747867057, 0, 4.57471097850338, 2.30258509299405, 4.54329478227, 4.55387689160054, 2.70805020110221, 0, 0, 4.58496747867057, 4.54329478227, 0, 0, 4.62497281328427, 0, 0, 3.61091791264422, 4.60517018598809, 4.55387689160054, 4.58496747867057, 2.94443897916644, 0, 3.87120101090789, 4.20469261939097, 4.4188406077966, 0, 4.54329478227, 1.6094379124341, 0, 0, 0, 4.58496747867057, 0, 4.53259949315326, 4.52178857704904, 3.43398720448515, 0, 0, 0, 4.17438726989564, 0, 3.40119738166216, 4.57471097850338, 0, 4.61512051684126, 4.61512051684126, 0, 4.61512051684126, 3.71357206670431, 4.63472898822964, 4.62497281328427, 2.99573227355399, 0, 4.56434819146784, 0, 4.59511985013459, 0, 0, 0, 4.53259949315326, 4.61512051684126, 4.52178857704904, 4.21950770517611, 4.52178857704904, 3.3322045101752, 4.58496747867057, 0, 0, 4.61512051684126, 4.54329478227, 0, 4.58496747867057, 0, 4.4188406077966, 3.43398720448515, 0, 0, 0, 3.13549421592915, 0, 0, 0, 0, 0, 4.59511985013459, 0, 4.61512051684126, 0, 4.57471097850338, 4.58496747867057, 4.62497281328427, 0, 3.49650756146648, 0, 4.60517018598809, 0, 0, 0, 4.58496747867057, 0, 3.66356164612965, 1.94591014905531, 0, 4.55387689160054, 4.62497281328427, 0, 4.35670882668959, 0, 0, 4.4188406077966, 0, 0, 0, 0, 0, 0, 4.02535169073515, 0, 0, 0, 0, 2.19722457733622, 4.61512051684126, 0, 4.55387689160054, 0, 0, 4.61512051684126, 4.59511985013459, 4.61512051684126, 0, 0, 0, 1.79175946922805, 4.61512051684126, 3.78418963391826, 0, 0, 0, 4.33073334028633, 0, 4.51085950651685, 0, 0, 0, 4.07753744390572, 4.58496747867057, 4.33073334028633, 3.09104245335832, 4.46590811865458, 0, 3.63758615972639, 0, 4.60517018598809, 0, 0, 4.55387689160054, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 4.60517018598809, 0, 4.55387689160054, 0, 4.58496747867057, 0, 0, 0, 3.78418963391826, 0, 0, 4.62497281328427, 0, 0, 0, 0, 0, 0, 0, 4.61512051684126, 3.29583686600433, 4.61512051684126, 0, 4.59511985013459, 0, 0, 0, 4.62497281328427, 0, 0, 0, 4.57471097850338, 0, 4.49980967033027, 0, 4.62497281328427, 0, 4.61512051684126, 0, 0, 4.55387689160054, 0, 0, 0, 3.55534806148941, 0, 0, 3.61091791264422, 0, 0, 0, 0, 0, 0, 4.61512051684126, 0, 4.26267987704132, 0, 4.55387689160054, 0, 0, 4.61512051684126, 4.58496747867057, 4.62497281328427, 3.91202300542815, 3.78418963391826, 0, 0, 4.24849524204936, 2.99573227355399, 0, 4.61512051684126, 0, 3.52636052461616, 0, 0, 4.54329478227, 0, 4.60517018598809, 4.27666611901606, 3.09104245335832, 0, 4.58496747867057, 2.77258872223978, 0, 4.06044301054642, 0, 4.55387689160054, 3.09104245335832, 4.57471097850338, 0, 0, 2.70805020110221, 0, 0, 4.62497281328427, 0, 4.55387689160054, 2.99573227355399, 0, 0, 2.83321334405622, 0, 4.61512051684126, 3.71357206670431, 3.40119738166216, 0, 4.60517018598809, 0, 0, 0, 0, 0, 4.58496747867057, 0, 4.64439089914137, 0, 4.30406509320417, 2.89037175789616, 0, 4.61512051684126, 4.60517018598809, 0, 0, 0, 4.55387689160054, 4.62497281328427, 4.61512051684126, 0, 0, 0, 0, 3.73766961828337, 0, 4.61512051684126, 4.56434819146784, 0, 0, 4.61512051684126, 0, 4.62497281328427, 4.57471097850338, 0, 0, 0, 0, 0, 4.04305126783455, 0, 2.484906649788, 0, 0, 0, 0, 0, 4.62497281328427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.18965474202643, 0, 0, 0, 2.99573227355399, 0, 4.21950770517611, 0, 0, 0, 0, 4.68213122712422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.54329478227, 0, 3.8286413964891, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.87120101090789, 4.57471097850338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.29045944114839, 3.80666248977032, 0, 0, 0, 0, 0, 0, 0, 4.60517018598809, 3.61091791264422, 0, 4.60517018598809, 0, 0, 0, 0, 4.24849524204936, 0, 0, 0, 0, 0, 0, 0, 4.57471097850338, 0, 0, 0, 0, 0, 0, 0, 4.31748811353631, 0, 0, 0, 4.58496747867057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 3.66356164612965, 4.63472898822964, 0, 0, 4.60517018598809, 0, 3.61091791264422, 0, 0, 0, 4.59511985013459, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 4.56434819146784, 2.39789527279837, 0, 4.58496747867057, 0, 0, 0, 4.62497281328427, 0, 0, 0, 0, 0, 4.61512051684126, 0, 0, 0, 0, 4.30406509320417, 0, 0, 0, 4.30406509320417, 4.31748811353631, 0, 0, 0, 0, 0, 0, 4.60517018598809, 2.89037175789616, 0, 4.58496747867057, 0, 4.60517018598809, 0, 0, 0, 4.47733681447821, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 4.33073334028633, 3.71357206670431, 3.73766961828337, 4.53259949315326, 0, 0, 0, 0, 0, 3.55534806148941, 0, 1.94591014905531, 0, 4.60517018598809, 3.40119738166216, 0, 0, 0, 3.09104245335832, 0, 0, 0, 0, 0, 4.26267987704132, 2.484906649788, 4.55387689160054, 4.56434819146784, 0, 3.2188758248682, 0, 0, 0, 0, 4.47733681447821, 3.25809653802148, 4.60517018598809, 0, 0, 4.11087386417331, 0, 0, 0, 4.58496747867057, 4.49980967033027, 0, 0, 0, 0, 0, 3.71357206670431, 0, 0, 0, 0, 4.62497281328427, 2.77258872223978, 2.94443897916644, 4.62497281328427, 0, 0, 4.55387689160054, 4.44265125649032, 0, 0, 4.00733318523247, 4.47733681447821, 4.55387689160054, 0, 3.46573590279973, 0, 0, 0, 4.62497281328427, 4.61512051684126, 4.60517018598809, 3.58351893845611, 0, 0, 0, 0, 0, 4.55387689160054, 0, 3.66356164612965, 0, 0, 0, 3.61091791264422, 0, 4.60517018598809, 4.02535169073515, 0, 0, 0, 4.62497281328427, 4.61512051684126, 4.12713438504509, 3.61091791264422, 3.66356164612965, 4.55387689160054, 0, 0, 2.70805020110221, 4.59511985013459, 4.61512051684126, 4.61512051684126, 0, 4.52178857704904, 0, 0, 0, 0, 4.48863636973214, 0, 0, 0, 4.60517018598809, 0, 0, 0, 4.58496747867057, 4.02535169073515, 4.61512051684126, 0, 4.49980967033027, 0, 0, 4.39444915467244, 4.53259949315326, 0, 0, 4.59511985013459, 3.87120101090789, 0, 0, 4.26267987704132, 2.63905732961526, 4.61512051684126, 2.39789527279837, 4.00733318523247, 4.58496747867057, 4.02535169073515, 0, 4.26267987704132, 4.61512051684126, 0, 4.63472898822964, 4.53259949315326, 0, 4.55387689160054, 0, 4.23410650459726, 4.26267987704132, 4.62497281328427, 4.59511985013459, 0, 0, 0, 3.73766961828337, 4.47733681447821, 0, 0, 3.87120101090789, 0, 4.61512051684126, 4.60517018598809, 3.91202300542815, 4.58496747867057, 4.58496747867057, 0, 2.99573227355399, 0, 0, 4.14313472639153, 0, 2.63905732961526, 4.60517018598809, 0, 0, 0, 0, 4.38202663467388, 3.76120011569356, 0, 0, 0, 2.70805020110221, 4.59511985013459, 0, 4.60517018598809, 4.35670882668959, 0, 4.45434729625351, 0, 0, 4.61512051684126, 0, 0, 3.98898404656427, 4.57471097850338, 0, 4.58496747867057, 0, 0, 4.57471097850338, 0, 4.58496747867057, 0, 0, 0, 0, 3.3322045101752, 2.83321334405622, 0, 4.29045944114839, 0, 4.63472898822964, 4.59511985013459, 0, 0, 4.58496747867057, 0, 4.58496747867057, 4.58496747867057, 4.58496747867057, 4.26267987704132, 4.61512051684126, 4.60517018598809, 4.62497281328427, 4.60517018598809, 4.57471097850338, 3.25809653802148, 4.62497281328427, 4.60517018598809, 4.57471097850338, 3.87120101090789, 4.58496747867057, 4.61512051684126, 0, 4.58496747867057, 4.62497281328427, 4.23410650459726, 3.55534806148941, 0, 4.60517018598809, 0, 0, 0, 0, 0, 0, 0, 4.61512051684126, 0, 0, 4.61512051684126, 0, 0, 3.93182563272433, 4.60517018598809, 4.62497281328427, 4.57471097850338, 0, 4.58496747867057, 4.56434819146784, 0, 0, 4.60517018598809, 4.57471097850338, 4.58496747867057, 4.53259949315326, 0, 4.53259949315326, 4.59511985013459, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.94591014905531, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 2.19722457733622, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 1.6094379124341, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.79175946922805, 1.09861228866811, 0, 0.693147180559945, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 1.38629436111989, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.6094379124341, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.38629436111989, 0.693147180559945, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0, 1.38629436111989, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.6094379124341, 0, 0, 1.38629436111989, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.6094379124341, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 1.6094379124341, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 1.09861228866811, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 1.6094379124341, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 1.09861228866811, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.07944154167984, 1.38629436111989, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 1.79175946922805, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0.693147180559945, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0.693147180559945, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 1.09861228866811, 1.38629436111989, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.38629436111989, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 3.58351893845611, 4.40671924726425, 0, 0, 4.35670882668959, 0, 0, 0, 0, 0, 4.33073334028633, 0, 4.34380542185368, 0, 4.38202663467388, 0, 4.40671924726425, 4.4188406077966, 0, 0, 2.63905732961526, 4.26267987704132, 3.17805383034795, 0, 0, 4.31748811353631, 2.77258872223978, 4.40671924726425, 4.18965474202643, 4.04305126783455, 4.35670882668959, 4.33073334028633, 4.4188406077966, 0, 0, 4.14313472639153, 2.83321334405622, 0, 0, 4.44265125649032, 0, 2.63905732961526, 0, 4.23410650459726, 4.36944785246702, 0, 4.38202663467388, 4.35670882668959, 2.39789527279837, 0, 0, 4.12713438504509, 0, 0, 2.07944154167984, 0, 0, 0, 3.29583686600433, 4.04305126783455, 0, 4.40671924726425, 4.23410650459726, 4.40671924726425, 0, 0, 0, 4.29045944114839, 0, 4.39444915467244, 4.40671924726425, 4.27666611901606, 0, 0, 0, 4.27666611901606, 4.40671924726425, 0, 0, 0, 0, 0, 0, 0, 0, 4.27666611901606, 0, 4.4188406077966, 3.8286413964891, 0, 0, 0, 4.23410650459726, 0, 0, 4.27666611901606, 0, 3.13549421592915, 3.3322045101752, 0, 4.34380542185368, 0, 3.43398720448515, 4.34380542185368, 0, 0, 0, 0, 0, 4.36944785246702, 4.34380542185368, 0, 4.40671924726425, 4.38202663467388, 2.89037175789616, 0, 0, 0, 3.55534806148941, 0, 4.35670882668959, 0, 0, 0, 0, 3.29583686600433, 0, 2.89037175789616, 2.63905732961526, 3.25809653802148, 0, 4.38202663467388, 0, 0, 0, 4.11087386417331, 0, 4.38202663467388, 4.23410650459726, 0, 3.87120101090789, 0, 0, 4.31748811353631, 0, 4.4188406077966, 3.61091791264422, 0, 4.38202663467388, 0, 4.34380542185368, 4.35670882668959, 0, 3.97029191355212, 3.49650756146648, 0, 0, 4.33073334028633, 0, 4.33073334028633, 0, 0, 0, 4.34380542185368, 3.40119738166216, 0, 3.43398720448515, 0, 0, 0, 4.40671924726425, 0, 0, 3.85014760171006, 0, 0, 0, 4.45434729625351, 2.89037175789616, 0, 0, 0, 4.0943445622221, 0, 0, 0, 0, 4.31748811353631, 3.8286413964891, 0, 0, 0, 0, 4.39444915467244, 0, 3.89182029811063, 2.39789527279837, 4.20469261939097, 3.80666248977032, 0, 3.63758615972639, 0, 4.34380542185368, 4.33073334028633, 4.21950770517611, 0, 0, 3.76120011569356, 0, 0, 0, 4.31748811353631, 0, 0, 0, 4.40671924726425, 0, 0, 4.39444915467244, 3.13549421592915, 4.26267987704132, 3.29583686600433, 3.13549421592915, 0, 2.94443897916644, 4.36944785246702, 3.49650756146648, 0, 0, 0, 4.36944785246702, 0, 0, 0, 3.29583686600433, 4.12713438504509, 0, 0, 2.07944154167984, 0, 2.07944154167984, 0, 0, 4.39444915467244, 0, 0, 0, 3.55534806148941, 0, 0, 4.4188406077966, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 0, 4.30406509320417, 0, 0, 0, 0, 4.35670882668959, 0, 0, 0, 0, 2.94443897916644, 0, 0, 0, 4.34380542185368, 0, 0, 0, 4.23410650459726, 0, 2.39789527279837, 4.39444915467244, 3.71357206670431, 0, 0, 0, 0, 0, 4.40671924726425, 3.43398720448515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.31748811353631, 0, 4.33073334028633, 3.46573590279973, 0, 3.25809653802148, 0, 0, 0, 0, 4.35670882668959, 4.33073334028633, 0, 0, 0, 0, 0, 4.4188406077966, 4.38202663467388, 0, 0, 0, 0, 4.34380542185368, 0, 0, 0, 3.71357206670431, 0, 4.36944785246702, 0, 4.33073334028633, 3.52636052461616, 3.97029191355212, 0, 4.38202663467388, 0, 0, 0, 0, 2.77258872223978, 0, 4.40671924726425, 2.99573227355399, 0, 4.34380542185368, 0, 2.63905732961526, 4.26267987704132, 0, 0, 0, 2.07944154167984, 0, 4.4188406077966, 0, 3.40119738166216, 0, 0, 4.24849524204936, 0, 4.34380542185368, 4.34380542185368, 0, 4.33073334028633, 0, 0, 0, 0, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 4.34380542185368, 0, 0, 0, 4.39444915467244, 3.36729582998647, 0, 3.73766961828337, 3.63758615972639, 4.34380542185368, 2.83321334405622, 0, 0, 0, 0, 4.38202663467388, 0, 0, 3.78418963391826, 0, 0, 0, 0, 4.36944785246702, 0, 4.20469261939097, 0, 3.87120101090789, 4.21950770517611, 0, 4.11087386417331, 0, 0, 0, 0, 0, 0, 0, 3.85014760171006, 0, 2.07944154167984, 4.34380542185368, 0, 0, 0, 4.29045944114839, 4.31748811353631, 4.31748811353631, 0, 0, 4.39444915467244, 0, 0, 4.26267987704132, 0, 4.33073334028633, 0, 4.35670882668959, 3.36729582998647, 0, 0, 4.38202663467388, 0, 0, 4.39444915467244, 0, 0, 3.93182563272433, 0, 0, 3.43398720448515, 3.29583686600433, 0, 3.52636052461616, 0, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 0, 0, 4.38202663467388, 4.38202663467388, 4.33073334028633, 4.43081679884331, 0, 4.36944785246702, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.36729582998647, 0, 4.39444915467244, 0, 2.83321334405622, 0, 0, 0, 4.24849524204936, 0, 4.15888308335967, 0, 0, 0, 0, 0, 0, 0, 4.43081679884331, 4.31748811353631, 0, 0, 4.44265125649032, 0, 0, 4.30406509320417, 0, 0, 0, 0, 0, 2.63905732961526, 0, 0, 3.25809653802148, 0, 0, 4.31748811353631, 4.36944785246702, 4.34380542185368, 0, 4.34380542185368, 0, 0, 0, 3.71357206670431, 0, 4.26267987704132, 4.35670882668959, 0, 3.71357206670431, 4.36944785246702, 0, 0, 0, 4.33073334028633, 0, 0, 4.39444915467244, 2.94443897916644, 0, 4.02535169073515, 2.94443897916644, 3.17805383034795, 0, 3.13549421592915, 0, 4.36944785246702, 0, 0, 0, 4.21950770517611, 0, 3.80666248977032, 0, 0, 2.83321334405622, 0, 4.00733318523247, 4.39444915467244, 0, 4.0943445622221, 4.38202663467388, 0, 4.27666611901606, 0, 4.34380542185368, 0, 0, 0, 3.97029191355212, 3.58351893845611, 4.31748811353631, 4.00733318523247, 0, 0, 4.39444915467244, 0, 4.35670882668959, 0, 4.36944785246702, 0, 4.34380542185368, 4.40671924726425, 0, 4.39444915467244, 4.34380542185368, 0, 0, 0, 0, 0, 3.73766961828337, 0, 0, 4.36944785246702, 4.39444915467244, 0, 0, 4.26267987704132, 4.23410650459726, 0, 0, 0, 4.38202663467388, 0, 0, 0, 4.39444915467244, 3.78418963391826, 0, 0, 0, 0, 0, 0, 4.17438726989564, 4.24849524204936, 0, 4.33073334028633, 3.09104245335832, 4.26267987704132, 0, 2.30258509299405, 0, 4.26267987704132, 4.35670882668959, 0, 4.39444915467244, 0, 4.36944785246702, 0, 3.63758615972639, 4.29045944114839, 0, 4.06044301054642, 0, 0, 4.14313472639153, 0, 0, 0, 0, 0, 0, 4.38202663467388, 4.38202663467388, 4.35670882668959, 0, 0, 4.39444915467244, 3.93182563272433, 0, 0, 3.8286413964891, 0, 3.09104245335832, 0, 4.36944785246702, 0, 4.36944785246702, 4.20469261939097, 4.38202663467388, 3.63758615972639, 4.33073334028633, 3.17805383034795, 0, 3.61091791264422, 0, 0, 0, 0, 0, 4.33073334028633, 4.36944785246702, 3.29583686600433, 4.38202663467388, 0, 4.35670882668959, 0, 4.38202663467388, 0, 4.39444915467244, 0, 0, 4.36944785246702, 3.17805383034795, 4.35670882668959, 0, 3.63758615972639, 4.38202663467388, 4.45434729625351, 2.39789527279837, 4.31748811353631, 4.15888308335967, 4.38202663467388, 3.68887945411394, 0, 4.34380542185368, 0, 0, 0, 0, 0, 3.66356164612965, 4.35670882668959, 3.29583686600433, 4.33073334028633, 0, 0, 0, 4.04305126783455, 4.34380542185368, 4.35670882668959, 1.6094379124341, 0, 4.39444915467244, 3.80666248977032, 0, 0, 3.55534806148941, 4.35670882668959, 4.34380542185368, 0, 0, 4.24849524204936, 0, 0, 4.30406509320417, 0, 0, 0, 4.36944785246702, 0, 0, 4.34380542185368, 3.76120011569356, 0, 3.76120011569356, 3.80666248977032, 4.29045944114839, 0, 0, 3.2188758248682, 0, 0, 0, 0, 0, 3.29583686600433, 0, 4.33073334028633, 3.36729582998647, 2.63905732961526, 4.33073334028633, 0, 0, 0, 4.11087386417331, 0, 0, 0, 0, 0, 2.94443897916644, 0, 0, 3.95124371858143, 0, 0, 2.70805020110221, 0, 0, 0, 0, 4.34380542185368, 4.36944785246702, 4.34380542185368, 0, 0, 4.40671924726425, 0, 0, 0, 0, 0, 0, 0, 0, 3.52636052461616, 0, 0, 0, 4.00733318523247, 3.43398720448515, 0, 0, 0, 4.39444915467244, 2.39789527279837, 0, 0, 0, 4.39444915467244, 0, 0, 0, 0, 4.21950770517611, 3.36729582998647, 0, 0, 2.30258509299405, 3.40119738166216, 0, 0, 0, 4.34380542185368, 4.26267987704132, 0, 3.98898404656427, 0, 0, 0, 4.31748811353631, 0, 4.39444915467244, 0, 4.35670882668959, 4.29045944114839, 4.34380542185368, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 4.34380542185368, 4.38202663467388, 0, 0, 0, 4.31748811353631, 4.39444915467244, 0, 4.39444915467244, 3.85014760171006, 0, 0, 4.4188406077966, 0, 0, 0, 3.8286413964891, 2.70805020110221, 3.89182029811063, 4.30406509320417, 0, 2.30258509299405, 0, 4.40671924726425, 0, 0, 3.09104245335832, 4.35670882668959, 3.68887945411394, 0, 4.34380542185368, 4.36944785246702, 4.30406509320417, 4.0943445622221, 3.46573590279973, 4.29045944114839, 0, 0, 0, 3.36729582998647, 0, 4.35670882668959, 0, 4.36944785246702, 4.34380542185368, 0, 0, 4.33073334028633, 4.12713438504509, 4.43081679884331, 0, 4.36944785246702, 0, 4.39444915467244, 4.38202663467388, 0, 0, 0, 2.56494935746154, 0, 4.33073334028633, 0, 4.36944785246702, 0, 0, 3.55534806148941, 0, 0, 0, 4.31748811353631, 4.40671924726425, 0, 4.26267987704132, 3.95124371858143, 0, 0, 4.35670882668959, 0, 4.34380542185368, 0, 0, 0, 3.80666248977032, 4.33073334028633, 0, 0, 4.39444915467244, 3.85014760171006, 4.17438726989564, 0, 0, 4.39444915467244, 4.34380542185368, 0, 0, 0, 4.34380542185368, 0, 4.24849524204936, 4.29045944114839, 0, 0, 0, 0, 4.35670882668959, 4.39444915467244, 4.34380542185368, 4.23410650459726, 0, 0, 3.52636052461616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.34380542185368, 2.94443897916644, 4.36944785246702, 4.06044301054642, 4.29045944114839, 3.76120011569356, 3.68887945411394, 0, 2.89037175789616, 0, 0, 0, 0, 4.35670882668959, 0, 0, 3.95124371858143, 4.35670882668959, 0, 0, 0, 4.29045944114839, 4.0943445622221, 0, 0, 0, 0, 0, 4.35670882668959, 0, 3.49650756146648, 0, 4.34380542185368, 2.30258509299405, 2.77258872223978, 0, 0, 0, 0, 0, 3.09104245335832, 0, 0, 3.95124371858143, 4.38202663467388, 4.34380542185368, 0, 4.31748811353631, 3.97029191355212, 0, 4.40671924726425, 4.12713438504509, 3.76120011569356, 0, 4.40671924726425, 0, 4.33073334028633, 3.85014760171006, 4.31748811353631, 0, 0, 0, 4.40671924726425, 3.13549421592915, 0, 4.34380542185368, 0, 4.43081679884331, 0, 0, 2.484906649788, 0, 0, 0, 0, 3.17805383034795, 0, 4.06044301054642, 0, 3.36729582998647, 4.31748811353631, 0, 4.34380542185368, 3.78418963391826, 3.91202300542815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.91202300542815, 2.99573227355399, 0, 0, 1.6094379124341, 0, 0, 4.33073334028633, 0, 0, 4.33073334028633, 0, 4.29045944114839, 2.30258509299405, 4.34380542185368, 4.34380542185368, 2.63905732961526, 0, 0, 4.40671924726425, 4.34380542185368, 0, 0, 4.38202663467388, 0, 0, 3.40119738166216, 4.34380542185368, 4.34380542185368, 4.33073334028633, 2.83321334405622, 0, 3.68887945411394, 4.00733318523247, 4.21950770517611, 0, 4.30406509320417, 1.6094379124341, 0, 0, 0, 4.29045944114839, 0, 4.27666611901606, 4.31748811353631, 3.25809653802148, 0, 0, 0, 3.95124371858143, 0, 3.17805383034795, 4.31748811353631, 0, 4.43081679884331, 4.34380542185368, 0, 4.40671924726425, 3.52636052461616, 4.34380542185368, 4.38202663467388, 2.94443897916644, 0, 4.31748811353631, 0, 4.36944785246702, 0, 0, 0, 4.29045944114839, 4.35670882668959, 4.26267987704132, 4.02535169073515, 4.31748811353631, 3.17805383034795, 4.36944785246702, 0, 0, 4.43081679884331, 4.29045944114839, 0, 4.39444915467244, 0, 4.21950770517611, 3.2188758248682, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 0, 4.38202663467388, 0, 4.39444915467244, 0, 4.23410650459726, 4.31748811353631, 4.35670882668959, 0, 3.25809653802148, 0, 4.26267987704132, 0, 0, 0, 4.29045944114839, 0, 3.52636052461616, 1.79175946922805, 0, 4.34380542185368, 4.38202663467388, 0, 4.14313472639153, 0, 0, 4.11087386417331, 0, 0, 0, 0, 0, 0, 3.85014760171006, 0, 0, 0, 0, 2.07944154167984, 4.38202663467388, 0, 4.34380542185368, 0, 0, 4.36944785246702, 4.34380542185368, 4.36944785246702, 0, 0, 0, 0, 4.30406509320417, 3.58351893845611, 0, 0, 0, 4.12713438504509, 0, 4.26267987704132, 0, 0, 0, 3.85014760171006, 4.39444915467244, 4.0943445622221, 2.94443897916644, 4.26267987704132, 0, 3.43398720448515, 0, 4.43081679884331, 0, 0, 4.34380542185368, 0, 0, 2.63905732961526, 0, 0, 0, 0, 0, 4.43081679884331, 0, 4.34380542185368, 0, 4.36944785246702, 0, 0, 0, 3.58351893845611, 0, 0, 4.44265125649032, 0, 0, 0, 0, 0, 0, 0, 4.35670882668959, 2.99573227355399, 4.39444915467244, 0, 4.35670882668959, 0, 0, 0, 4.45434729625351, 0, 0, 0, 4.34380542185368, 0, 4.31748811353631, 0, 4.44265125649032, 0, 4.43081679884331, 0, 0, 4.35670882668959, 0, 0, 0, 3.29583686600433, 0, 0, 3.13549421592915, 0, 0, 0, 0, 0, 0, 4.39444915467244, 0, 4.0943445622221, 0, 4.34380542185368, 0, 0, 4.46590811865458, 4.36944785246702, 4.35670882668959, 3.76120011569356, 3.61091791264422, 0, 0, 4.02535169073515, 2.89037175789616, 0, 4.39444915467244, 0, 3.36729582998647, 0, 0, 4.34380542185368, 0, 4.38202663467388, 4.06044301054642, 2.89037175789616, 0, 4.31748811353631, 2.70805020110221, 0, 3.76120011569356, 0, 4.26267987704132, 2.94443897916644, 4.31748811353631, 0, 0, 2.56494935746154, 0, 0, 4.40671924726425, 0, 4.34380542185368, 2.94443897916644, 0, 0, 2.70805020110221, 0, 4.30406509320417, 3.61091791264422, 3.2188758248682, 0, 4.39444915467244, 0, 0, 0, 0, 0, 4.4188406077966, 0, 4.36944785246702, 0, 4.06044301054642, 2.77258872223978, 0, 4.34380542185368, 4.33073334028633, 0, 0, 0, 4.34380542185368, 4.40671924726425, 4.39444915467244, 0, 0, 0, 0, 3.52636052461616, 0, 4.27666611901606, 4.24849524204936, 0, 0, 4.39444915467244, 0, 4.40671924726425, 4.26267987704132, 0, 0, 0, 0, 0, 3.8286413964891, 0, 2.484906649788, 0, 0, 0, 0, 0, 4.36944785246702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.97029191355212, 0, 0, 0, 2.94443897916644, 0, 4.04305126783455, 0, 0, 0, 0, 4.45434729625351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.33073334028633, 0, 3.63758615972639, 2.70805020110221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.63758615972639, 4.36944785246702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.0943445622221, 3.52636052461616, 0, 0, 0, 0, 0, 0, 0, 4.38202663467388, 3.43398720448515, 0, 4.38202663467388, 0, 0, 0, 0, 4.06044301054642, 0, 0, 0, 0, 0, 0, 0, 4.35670882668959, 0, 0, 0, 0, 0, 0, 0, 4.12713438504509, 0, 0, 0, 4.35670882668959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 3.43398720448515, 4.26267987704132, 0, 0, 4.35670882668959, 0, 3.40119738166216, 0, 0, 0, 4.35670882668959, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 4.33073334028633, 2.07944154167984, 0, 4.39444915467244, 0, 0, 0, 4.34380542185368, 0, 0, 0, 0, 0, 4.33073334028633, 0, 0, 0, 0, 4.0943445622221, 0, 0, 0, 4.12713438504509, 4.11087386417331, 0, 0, 0, 0, 0, 0, 4.40671924726425, 2.83321334405622, 0, 4.35670882668959, 0, 4.39444915467244, 0, 0, 0, 4.27666611901606, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 4.0943445622221, 3.52636052461616, 3.55534806148941, 4.30406509320417, 0, 0, 0, 0, 0, 3.29583686600433, 0, 1.94591014905531, 0, 4.31748811353631, 3.29583686600433, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 0, 4.02535169073515, 2.39789527279837, 4.26267987704132, 4.27666611901606, 0, 2.99573227355399, 0, 0, 0, 0, 4.27666611901606, 3.17805383034795, 4.38202663467388, 0, 0, 3.95124371858143, 0, 0, 0, 4.36944785246702, 4.33073334028633, 0, 0, 0, 0, 0, 3.52636052461616, 0, 0, 0, 0, 4.33073334028633, 2.56494935746154, 2.70805020110221, 4.4188406077966, 0, 0, 4.34380542185368, 4.24849524204936, 0, 0, 3.8286413964891, 4.27666611901606, 4.33073334028633, 0, 3.2188758248682, 0, 0, 0, 4.4188406077966, 4.43081679884331, 4.35670882668959, 3.43398720448515, 0, 0, 0, 0, 0, 4.34380542185368, 0, 3.46573590279973, 0, 0, 0, 3.40119738166216, 0, 4.36944785246702, 3.87120101090789, 0, 0, 0, 4.34380542185368, 4.40671924726425, 3.95124371858143, 3.43398720448515, 3.49650756146648, 4.27666611901606, 0, 0, 2.63905732961526, 4.36944785246702, 4.40671924726425, 4.40671924726425, 0, 4.29045944114839, 0, 0, 0, 0, 4.27666611901606, 0, 0, 0, 4.4188406077966, 0, 0, 0, 4.38202663467388, 3.87120101090789, 4.40671924726425, 0, 4.24849524204936, 0, 0, 4.15888308335967, 4.31748811353631, 0, 0, 4.39444915467244, 3.63758615972639, 0, 0, 4.02535169073515, 2.56494935746154, 4.40671924726425, 2.19722457733622, 3.8286413964891, 4.33073334028633, 3.87120101090789, 0, 4.07753744390572, 4.40671924726425, 0, 4.43081679884331, 4.29045944114839, 0, 4.34380542185368, 0, 4.00733318523247, 4.02535169073515, 4.4188406077966, 4.38202663467388, 0, 0, 0, 3.58351893845611, 4.27666611901606, 0, 0, 3.63758615972639, 0, 4.39444915467244, 4.34380542185368, 3.71357206670431, 4.35670882668959, 4.36944785246702, 0, 2.83321334405622, 0, 0, 3.76120011569356, 0, 2.56494935746154, 4.33073334028633, 0, 0, 0, 0, 4.14313472639153, 3.61091791264422, 0, 0, 0, 2.63905732961526, 4.35670882668959, 0, 4.38202663467388, 3.85014760171006, 0, 4.07753744390572, 0, 0, 4.4188406077966, 0, 0, 3.73766961828337, 4.35670882668959, 0, 4.36944785246702, 0, 0, 4.34380542185368, 0, 4.31748811353631, 0, 0, 0, 0, 2.99573227355399, 2.70805020110221, 0, 4.06044301054642, 0, 4.38202663467388, 4.39444915467244, 0, 0, 4.31748811353631, 0, 4.31748811353631, 4.31748811353631, 4.33073334028633, 4.02535169073515, 4.39444915467244, 4.38202663467388, 4.4188406077966, 4.38202663467388, 4.33073334028633, 3.13549421592915, 4.4188406077966, 4.38202663467388, 4.33073334028633, 3.66356164612965, 4.33073334028633, 4.39444915467244, 0, 4.33073334028633, 4.4188406077966, 4.06044301054642, 3.36729582998647, 0, 4.34380542185368, 0, 0, 0, 0, 0, 0, 0, 4.36944785246702, 0, 0, 4.38202663467388, 0, 0, 3.73766961828337, 4.35670882668959, 4.38202663467388, 4.33073334028633, 0, 4.30406509320417, 4.34380542185368, 0, 0, 4.38202663467388, 4.35670882668959, 4.36944785246702, 4.30406509320417, 0, 4.30406509320417, 4.38202663467388, 0.494170156780135, 0.312403224557006, 0, 0, 0.314353876710608, 0, 0, 0, 0, 0, 0.274350872244856, 0, 0.301938723491973, 0, 0.334677016985451, 0, 0.309885882089034, 0.334107807868675, 0, 0, 1.35387044772418, 0.375229391707452, 1.42072323298485, 0, 0, 0.362876279035801, 2.37843971755005, 0.223270732046763, 0.339145449223105, 0.430649472929862, 0.291839137298002, 0.227012717350933, 0.334107807868675, 0, 0, 0.444492438061344, 0.914971270483429, 0, 0, 0.34072373896162, 0, 1.5442021222047, 0, 0.425071954241098, 0.273004490925099, 0, 0.225284528638337, 0.291839137298002, 2.78293358479441, 0, 0, 0.297654477248662, 0, 0, 5.24140438986225, 0, 0, 0, 1.10168321020024, 0.480913193762759, 0, 0.312403224557006, 0.444251059937868, 0.312403224557006, 0, 0, 0, 0.305408809119569, 0, 0.307481824910476, 0.264203530935207, 0.285442092230729, 0, 0, 0, 0.272020518477341, 0.264203530935207, 0, 0, 0, 0, 0, 0, 0, 0, 0.272020518477341, 0, 0.334107807868675, 0.561584043223956, 0, 0, 0, 0.444251059937868, 0, 0, 0.39855062093409, 0, 1.10741070043022, 0.936553089964022, 0, 0.252426584159587, 0, 0.652676178944734, 0.271203978622023, 0, 0, 0, 0, 0, 0.274258026204688, 0.30297368003908, 0, 0.25573130890776, 0.347430719951353, 1.73111484233122, 0, 0, 0, 1.46645592165636, 0, 0.319465062977761, 0, 0, 0, 0, 1.10168321020024, 0, 1.73111484233122, 1.5442021222047, 1.08844517029389, 0, 0.313666238643555, 0, 0, 0, 0.339145449223105, 0, 0.291823070821528, 0.44213854711426, 0, 0.427774394053572, 0, 0, 0.254478411453061, 0, 0.309257747046549, 0.651596009044607, 0, 0.298596808696654, 0, 0.249081935310858, 0.347675444086348, 0, 0.406253865381844, 0.841202666844029, 0, 0, 0.243944990566848, 0, 0.460836461082662, 0, 0, 0, 0.271203978622023, 1.14076379435525, 0, 0.943130718573181, 0, 0, 0, 0.309885882089034, 0, 0, 0.569348002776984, 0, 0, 0, 0.342220490877133, 1.21639811704877, 0, 0, 0, 0.35537327705653, 0, 0, 0, 0, 0.254478411453061, 0.477566254812319, 0, 0, 0, 0, 0.234426157684682, 0, 0.566142223294152, 1.78613710686606, 0.392851721208862, 0.481437777351872, 0, 0.734815250933873, 0, 0.246653890829208, 0.295049136603492, 0.366536516545209, 0, 0, 0.733703594909801, 0, 0, 0, 0.254478411453061, 0, 0, 0, 0.251304284896703, 0, 0, 0.275913559723324, 1.36837680102287, 0.48288721275494, 1.10168321020024, 1.36837680102287, 0, 1.74466024055549, 0.27142196915141, 0.564394218981626, 0, 0, 0, 0.226242594208203, 0, 0, 0, 1.10168321020024, 0.47990672081384, 0, 0, 5.24140438986225, 0, 5.24140438986225, 0, 0, 0.322258053921587, 0, 0, 0, 0.706535608871927, 0, 0, 0.271380376776611, 1.19514663882262, 0, 0, 0, 0, 0, 0, 0, 0, 0.238079127040332, 0, 0, 0, 0, 0.317019352609904, 0, 0, 0, 0, 1.7923759220489, 0, 0, 0, 0.28475566782934, 0, 0, 0, 0.350517431573213, 0, 0, 0.224382309442667, 0.48561342990512, 0, 0, 0, 0, 0, 0.287586222534988, 0.690553320555097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.286468017804119, 0, 0.248320227525564, 0.557843630275006, 0, 0.800212722462319, 0, 0, 0, 0, 0.191116181899832, 0.21311338419935, 0, 0, 0, 0, 0, 0.334107807868675, 0.344003860952933, 0, 0, 0, 0, 0.331618822897565, 0, 0, 0, 0.578417977502994, 0, 0.347081548356732, 0, 0.29017366569034, 0.63295196354626, 0.277224507415129, 0, 0.268387325540199, 0, 0, 0, 0, 2.37843971755005, 0, 0.293641000479118, 0.847711434880166, 0, 0.272042468774298, 0, 1.5442021222047, 0.248253839719299, 0, 0, 0, 5.24140438986225, 0, 0.288866563691058, 0, 0.901817441884017, 0, 0, 0.251425987551926, 0, 0.237021745855487, 0.284552418319146, 0, 0.264538951315079, 0, 0, 0, 0, 0, 0, 0, 0, 1.73111484233122, 0, 0, 0, 0, 0.314954973046978, 0, 0, 0, 0.341189226397428, 0.723191309011633, 0, 0.564362726137978, 0.670965954152323, 0.269268811300983, 1.5423759220489, 0, 0, 0, 0, 0.216364407987102, 0, 0, 0.672732085007388, 0, 0, 0, 0, 0.265431749789407, 0, 0.329253472851911, 0, 0.371754935466022, 0.27458573052211, 0, 0.434272359542648, 0, 0, 0, 0, 0, 0, 0, 0.509209672526157, 0, 5.24140438986225, 0.253601940581706, 0, 0, 0, 0.408090145983157, 0.231691334014803, 0.254478411453061, 0, 0, 0.204523000729883, 0, 0, 0.448390215266538, 0, 0.202369429962527, 0, 0.3865588970167, 0.958021043896148, 0, 0, 0.245601780809872, 0, 0, 0.239441105196089, 0, 0, 0.458720179574478, 0, 0, 1.04549821676302, 0.920044501594006, 0, 0.87570428391642, 0, 0, 0, 0, 0, 0, 0, 0, 1.7923759220489, 0, 0, 0.322333382071005, 0.224119816444848, 0.23765391783056, 0.2973596305317, 0, 0.268405931448993, 0, 0.292266086072958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.834894550663696, 0, 0.233747752985543, 0, 2.01099320152793, 0, 0, 0, 0.254016525002934, 0, 0.361314641280923, 0, 0, 0, 0, 0, 0, 0, 0.306523915515472, 0.254478411453061, 0, 0, 0.293586447117212, 0, 0, 0.355983016546292, 0, 0, 0, 0, 0, 1.57824807509372, 0, 0, 0.94451276268645, 0, 0, 0.254478411453061, 0.269285209248605, 0.40981849287478, 0, 0.30297368003908, 0, 0, 0, 0.634661446163024, 0, 0.472117427122265, 0.309765380114143, 0, 0.540431644038799, 0.263053734996754, 0, 0, 0, 0.256277161863554, 0, 0, 0.204523000729883, 1.7923759220489, 0, 0.331667208320814, 1.34000935909475, 0.918806633090413, 0, 1.57682097651122, 0, 0.275266987382106, 0, 0, 0, 0.311708530640119, 0, 0.418875983360525, 0, 0, 0.815904852732301, 0, 0.356781184360484, 0.225960288072292, 0, 0.392904754979445, 0.346906561605208, 0, 0.320850345366418, 0, 0.202398516152991, 0, 0, 0, 0.300521922904834, 0.669408262694084, 0.355171854450396, 0.390821762478886, 0, 0, 0.351861765373514, 0, 0.254407914436205, 0, 0.291044473754926, 0, 0.231902413195326, 0.354104763848065, 0, 0.22997050090175, 0.34580843516543, 0, 0, 0, 0, 0, 0.531137218677061, 0, 0, 0.281167380711295, 0.225960288072292, 0, 0, 0.22157949941388, 0.560348909478433, 0, 0, 0, 0.362661608830065, 0, 0, 0, 0.225960288072292, 0.538041883180279, 0, 0, 0, 0, 0, 0, 0.290543548446881, 0.350705127570124, 0, 0.333344069930077, 1.05715921095217, 0.319767195400566, 0, 4.74133078672761, 0, 0.271426499076034, 0.291866656659241, 0, 0.255291934583031, 0, 0.260420186931462, 0, 0.74181926714533, 0.239842408316897, 0, 0.438056066121331, 0, 0, 0.331295409517069, 0, 0, 0, 0, 0, 0, 0.284457763808005, 0.255447119951467, 0.276459899737701, 0, 0, 0.225960288072292, 0.421346441494718, 0, 0, 0.495290016411334, 0, 1.17493409003786, 0, 0.265431749789407, 0, 0.302026208685838, 0.350187839989822, 0.268387325540199, 0.658129257938394, 0.501455964259581, 1.06278720180604, 0, 0.679999178591032, 0, 0, 0, 0, 0, 0.269093204813723, 0.330300822253112, 0.705505274902887, 0.188219300095333, 0, 0.213166789133356, 0, 0.274994825669206, 0, 0.267783842186279, 0, 0, 0.30731965985844, 1.52747179673634, 0.42849347165767, 0, 0.599777972054558, 0.283641602621546, 0.336323082098144, 1.78613710686606, 0.302319129848189, 0.352329853290997, 0.278718455371326, 0.462893043701312, 0, 0.318953672521507, 0, 0, 0, 0, 0, 0.658077421089749, 0.237595897272811, 0.639251375737639, 0.325721213042295, 0, 0, 0, 0.383200131476759, 0.318953672521507, 0.255415810802562, 3.21586929775511, 0, 0.225960288072292, 0.76061637521152, 0, 0, 0.641576915886562, 0.324617104030242, 0.25290604062307, 0, 0, 0.270702999306128, 0, 0, 0.252268737451734, 0, 0, 0, 0.252988759424914, 0, 0, 0.286621936941535, 0.782906965285105, 0, 0.757489449601549, 0.618264486561655, 0.292033641645871, 0, 0, 1.2880287907619, 0, 0, 0, 0, 0, 0.877457193082609, 0, 0.211123739098949, 0.98066045993869, 1.5442021222047, 0.431256673618819, 0, 0, 0, 0.259467328761222, 0, 0, 0, 0, 0, 1.38287859312767, 0, 0, 0.384941936789312, 0, 0, 1.70826900590328, 0, 0, 0, 0, 0.30297368003908, 0.281167380711295, 0.402954084496307, 0, 0, 0.258307472283357, 0, 0, 0, 0, 0, 0, 0, 0, 0.730560580090023, 0, 0, 0, 0.513631727822628, 1.06584993001053, 0, 0, 0, 0.224382309442667, 1.78613710686606, 0, 0, 0, 0.225960288072292, 0, 0, 0, 0, 0.351471265300775, 0.98066045993869, 0, 0, 2.68291977063995, 1.02167718086333, 0, 0, 0, 0.429294017432165, 0.321436864479171, 0, 0.402051706162584, 0, 0, 0, 0.282815635494014, 0, 0.225960288072292, 0, 0.230472057510142, 0.276464025589312, 0.30297368003908, 0, 0, 0, 0, 0, 0, 0, 2.12985253799273, 0.306823327159171, 0.280740064610953, 0, 0, 0, 0.254478411453061, 0.245544045501941, 0, 0.306451580764584, 0.565126354304392, 0, 0, 0.36263518574023, 0, 0, 0, 0.549602227317747, 1.70826900590328, 0.434693799278134, 0.295519520735739, 0, 2.65447500384257, 0, 0.308260644047633, 0, 0, 1.08085214029411, 0.277429378595841, 0.617552582153396, 0, 0.252426584159587, 0.276895690474959, 0.361383833980154, 0.391299098115024, 1.81472265547731, 0.230310384402894, 0, 0, 0, 0.98066045993869, 0, 0.290322343836711, 0, 0.211220797471138, 0.258201837124174, 0, 0, 0.232767690048566, 0.401847980251594, 0.294023339730362, 0, 0.332250815443206, 0, 0.371073356675859, 0.202221617661428, 0, 0, 0, 3.23189840559935, 0, 0.356412583902093, 0, 0.269285209248605, 0, 0, 0.687558180869777, 0, 0, 0, 0.249723630486917, 0.367603538861501, 0, 0.263635008041678, 0.453868151189595, 0, 0, 0.210138997179988, 0, 0.313613918461104, 0, 0, 0, 0.569624785252167, 0.455129270475816, 0, 0, 0.225960288072292, 0.714995946240111, 0.403719812535583, 0, 0, 0.450433201384486, 0.30297368003908, 0, 0, 0, 0.412450970331383, 0, 0.513533872015625, 0.292033641645871, 0, 0, 0, 0, 0.267729467105115, 0.241134363556797, 0.325477191806495, 0.444251059937868, 0, 0, 0.747468395454271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.30297368003908, 1.7923759220489, 0.353068820275631, 0.35141807434904, 0.245682664815602, 0.744858146823006, 0.428415701469014, 0, 1.21639811704877, 0, 0, 0, 0, 0.227771084465228, 0, 0, 0.455905887511728, 0.308091401265459, 0, 0, 0, 0.284291856866989, 0.411732053405145, 0, 0, 0, 0, 0, 0.310611589324557, 0, 0.903322723989628, 0, 0.30297368003908, 4.74133078672761, 2.37843971755005, 0, 0, 0, 0, 0, 1.09988778581671, 0, 0, 0.439465695019343, 0.240367139627058, 0.260809310388, 0, 0.292702691324947, 0.27809038214418, 0, 0.332164018882422, 0.31480154658381, 0.534132864259444, 0, 0.416311867631303, 0, 0.277031504283565, 0.59855012452951, 0.260319862049572, 0, 0, 0, 0.205105439231234, 0.91964133642142, 0, 0.30297368003908, 0, 0.308585718711618, 0, 0, 3.22397119066751, 0, 0, 0, 0, 1.23366674945186, 0, 0.372334667652189, 0, 0.98066045993869, 0.381677894147643, 0, 0.271203978622023, 0.401190174316326, 0.80265908832244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.632865616193342, 1.81505563059998, 0, 0, 3.21586929775511, 0, 0, 0.32789904662135, 0, 0, 0.236064908270878, 0, 0.23593585698252, 4.74133078672761, 0.246533763949813, 0.30297368003908, 1.95539509619382, 0, 0, 0.312406277076823, 0.246533763949813, 0, 0, 0.213481042415911, 0, 0, 0.856071070533708, 0.260569400051004, 0.30297368003908, 0.236064908270878, 1.91739432283256, 0, 0.428415701469014, 0.402516197520927, 0.330380834520838, 0, 0.218322100306005, 3.74863558735084, 0, 0, 0, 0.435725716595369, 0, 0.356252727273895, 0.254478411453061, 1.26895324124573, 0, 0, 0, 0.335065473462297, 0, 1.15678148963324, 0.247268350725639, 0, 0.306523915515472, 0.237021745855487, 0, 0.308808024154022, 0.556640975453094, 0.426560458020179, 0.258563951344469, 1.7923759220489, 0, 0.247327176425606, 0, 0.299582909305062, 0, 0, 0, 0.235621804600582, 0.230494931814746, 0.289497362736755, 0.399932743704768, 0.254478411453061, 1.6220594534704, 0.269285209248605, 0, 0, 0.408885745447053, 0.512737798575773, 0, 0.259533847672656, 0, 0.39082771262944, 0.774964474811945, 0, 0, 0, 0.853328099198384, 0, 0, 0, 0, 0, 0.310401405243209, 0, 0.275913559723324, 0, 0.444251059937868, 0.234812088928635, 0.430114981327492, 0, 0.666816398822789, 0, 0.448390215266538, 0, 0, 0, 0.29049183487949, 0, 0.588155126915752, 4.40490312214513, 0, 0.30297368003908, 0.284936615039191, 0, 0.348045594703269, 0, 0, 0.549953273750436, 0, 0, 0, 0, 0, 0, 0.594548669827774, 0, 0, 0, 0, 5.24140438986225, 0.221876118032434, 0, 0.30297368003908, 0, 0, 0.225842494305518, 0.292266086072958, 0.335827470216462, 0, 0, 0, 0, 0.413672031350312, 0.504244476225971, 0, 0, 0, 0.324940959775057, 0, 0.245172401958142, 0, 0, 0, 0.539389546518545, 0.342404830463111, 0.644266670765523, 1.14281968844155, 0.468345605420691, 0, 0.513832687157343, 0, 0.294023339730362, 0, 0, 0.30297368003908, 0, 0, 1.95539509619382, 0, 0, 0, 0, 0, 0.333833521866069, 0, 0.30297368003908, 0, 0.2719785037074, 0, 0, 0, 0.467570681377432, 0, 0, 0.34072373896162, 0, 0, 0, 0, 0, 0, 0, 0.279988118753361, 0.665238214666863, 0.204523000729883, 0, 0.365652094992542, 0, 0, 0, 0.340016515853096, 0, 0, 0, 0.294888427817243, 0, 0.395368609656602, 0, 0.34072373896162, 0, 0.408885745447053, 0, 0, 0.254478411453061, 0, 0, 0, 0.870657882917072, 0, 0, 1.78415256892615, 0, 0, 0, 0, 0, 0, 0.322258053921587, 0, 0.454983758851523, 0, 0.30297368003908, 0, 0, 0.347901194766352, 0.269285209248605, 0.33753287523964, 0.782906965285105, 0.741417111955284, 0, 0, 0.436693864486023, 1.41990169199516, 0, 0.28307931217305, 0, 0.98066045993869, 0, 0, 0.228720961650708, 0, 0.236312592115204, 0.462641468404897, 1.53735772478377, 0, 0.280766816149284, 1.70826900590328, 0, 0.474365132330889, 0, 0.321436864479171, 1.75822753424622, 0.249671505420172, 0, 0, 2.24568379414746, 0, 0, 0.324519727798618, 0, 0.30297368003908, 1.7923759220489, 0, 0, 1.50148797361248, 0, 0.413672031350312, 0.787330502335832, 0.820875535831347, 0, 0.287677085282379, 0, 0, 0, 0, 0, 0.291016696782484, 0, 0.298669199799846, 0, 0.326204050278046, 1.15970892104656, 0, 0.281745214093402, 0.364478332862237, 0, 0, 0, 0.30297368003908, 0.273574842062784, 0.322258053921587, 0, 0, 0, 0, 0.652343730383853, 0, 0.418837254434271, 0.437153584256191, 0, 0, 0.322258053921587, 0, 0.293020400244288, 0.436148110874876, 0, 0, 0, 0, 0, 0.673761034447092, 0, 6.28322456555688, 0, 0, 0, 0, 0, 0.239553788480173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.442153636166868, 0, 0, 0, 1.7923759220489, 0, 0.482055439233372, 0, 0, 0, 0, 0.303388230486764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.365059255215716, 0, 0.683217858811378, 1.70826900590328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.650851534849827, 0.281657424580965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.337436934834939, 0.764110804527296, 0, 0, 0, 0, 0, 0, 0, 0.29756188212995, 0.693204856281947, 0, 0.200765211925614, 0, 0, 0, 0, 0.515222555654164, 0, 0, 0, 0, 0, 0, 0, 0.33424503908932, 0, 0, 0, 0, 0, 0, 0, 0.375066200841858, 0, 0, 0, 0.297997326860307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 0, 0.635393317854526, 0.263635008041678, 0, 0, 0.248916420157414, 0, 0.645750228219912, 0, 0, 0, 0.22745713370209, 0, 0, 0, 0, 0, 0, 0, 0, 2.58465729777969, 0, 0, 0, 0.256946473693431, 5.24140438986225, 0, 0.347268084058763, 0, 0, 0, 0.259206884011278, 0, 0, 0, 0, 0, 0.230583909743927, 0, 0, 0, 0, 0.305949758614952, 0, 0, 0, 0.372206257216077, 0.372499842017053, 0, 0, 0, 0, 0, 0, 0.274469074924569, 2.01099320152793, 0, 0.380143434656899, 0, 0.317061088864141, 0, 0, 0, 0.386492386568351, 0, 0, 0, 0, 2.03655847721818, 0, 0, 0, 0.305872370805274, 0.612855500944806, 0.696021413999564, 0.292024037204065, 0, 0, 0, 0, 0, 0.7079549401592, 0, 7.04875931191986, 0, 0.229574180259607, 1.56769285995706, 0, 0, 0, 1.26653832087603, 0, 0, 0, 0, 0, 0.434225161637496, 2.86428226594619, 0.265648540969818, 0.240239334776945, 0, 1.48006902580372, 0, 0, 0, 0, 0.286243756942894, 1.90894373901083, 0.228103164900506, 0, 0, 0.519107953392194, 0, 0, 0, 0.240760493005435, 0.384609919374082, 0, 0, 0, 0, 0, 0.53395251865596, 0, 0, 0, 0, 0.230230448516047, 2.86428226594619, 2.30574736966765, 0.308210128712469, 0, 0, 0.284733046296767, 0.379955153643041, 0, 0, 0.591021097925792, 0.286243756942894, 0.288924377380357, 0, 0.615970170216855, 0, 0, 0, 0.308210128712469, 0.328495542528313, 0.263289559044773, 0.935150255866193, 0, 0, 0, 0, 0, 0.284733046296767, 0, 0.661651161078178, 0, 0, 0, 0.931096280201618, 0, 0.253706949155594, 0.59558317091831, 0, 0, 0, 0.270626464830403, 0.362571953469492, 0.608095754762081, 0.884976893996893, 0.833896035438423, 0.235958329717414, 0, 0, 2.19353713869461, 0.228755068996959, 0.362571953469492, 0.362571953469492, 0, 0.297767609471703, 0, 0, 0, 0, 0.320519035062546, 0, 0, 0, 0.368805793006138, 0, 0, 0, 0.385367816720747, 0.59558317091831, 0.362571953469492, 0, 0.300267374033821, 0, 0, 0.274940300730001, 0.30055781575297, 0, 0, 0.287134087285582, 0.519197800428062, 0, 0, 0.434225161637496, 2.67975175014649, 0.362571953469492, 3.21088233940223, 0.785942166594055, 0.282553921596038, 0.59558317091831, 0, 0.512234337036363, 0.362571953469492, 0, 0.282967465788391, 0.269187490168835, 0, 0.269030104733471, 0, 0.329113250721598, 0.434225161637496, 0.308210128712469, 0.263707971545156, 0, 0, 0, 0.747547852179863, 0.321267696999242, 0, 0, 0.479376804206744, 0, 0.321174217726132, 0.243967064780506, 0.358637114430137, 0.347034062088096, 0.351398843850925, 0, 1.39091255962125, 0, 0, 0.493148831784574, 0, 2.86428226594619, 0.208927524714573, 0, 0, 0, 0, 0.427013609444371, 0.78169261066, 0, 0, 0, 1.95539509619382, 0.251428416165199, 0, 0.269137032434692, 0.483846820924141, 0, 0.426448383378181, 0, 0, 0.343954059590229, 0, 0, 0.587886628076396, 0.264498812685525, 0, 0.25724522488881, 0, 0, 0.369834304524759, 0, 0.256081302180588, 0, 0, 0, 0, 1.25410915314504, 2.01645861932871, 0, 0.325052135230517, 0, 0.308082452411229, 0.36776604867954, 0, 0, 0.218337925621457, 0, 0.218337925621457, 0.218337925621457, 0.314417703687878, 0.434225161637496, 0.353641900269307, 0.220695961775166, 0.260687090670009, 0.220695961775166, 0.22232698488785, 2.23433074315342, 0.260687090670009, 0.220695961775166, 0.22232698488785, 0.737554739362516, 0.216233773634519, 0.425540602528844, 0, 0.216233773634519, 0.260687090670009, 0.430852861749189, 0.982553195859346, 0, 0.209675564515357, 0, 0, 0, 0, 0, 0, 0, 0.339842701354473, 0, 0, 0.301223618802312, 0, 0, 0.822584607251349, 0.285826489145903, 0.294873756502091, 0.303532594795409, 0, 0.291442574450388, 0.288774265430001, 0, 0, 0.254499887957112, 0.228945782393772, 0.314630859108809, 0.275309722905657, 0, 0.239966617484945, 0.361368813068621, 0.2, 0.0588235294117647, 1, 1, 0.333333333333333, 1, 1, 1, 1, 1, 0.125, 1, 0.0588235294117647, 1, 0.176470588235294, 1, 0.125, 0.222222222222222, 1, 1, 0.25, 0.230769230769231, 0.2, 1, 1, 0.133333333333333, 0.333333333333333, 0.105263157894737, 0.266666666666667, 0.142857142857143, 0.0588235294117647, 0.136363636363636, 0.222222222222222, 1, 1, 0.0769230769230769, 0.6, 1, 1, 0.25, 1, 0.333333333333333, 1, 0.230769230769231, 0.5, 1, 0.142857142857143, 0.0588235294117647, 0.333333333333333, 1, 1, 0.117647058823529, 1, 1, 0.5, 1, 1, 1, 0.166666666666667, 0.166666666666667, 1, 0.0588235294117647, 0.2, 0.0588235294117647, 1, 1, 1, 0.176470588235294, 1, 0.157894736842105, 0.117647058823529, 0.176470588235294, 1, 1, 1, 0.0555555555555556, 0.117647058823529, 1, 1, 1, 1, 1, 1, 1, 1, 0.0555555555555556, 1, 0.222222222222222, 0.111111111111111, 1, 1, 1, 0.2, 1, 1, 0.0769230769230769, 1, 0.2, 0.142857142857143, 1, 0.0555555555555556, 1, 0.111111111111111, 0.0588235294117647, 1, 1, 1, 1, 1, 0.0555555555555556, 0.0625, 1, 0.166666666666667, 0.333333333333333, 0.25, 1, 1, 1, 0.333333333333333, 1, 0.235294117647059, 1, 1, 1, 1, 0.166666666666667, 1, 0.25, 0.333333333333333, 0.166666666666667, 1, 0.1875, 1, 1, 1, 0.266666666666667, 1, 0.263157894736842, 0.0714285714285714, 1, 0.166666666666667, 1, 1, 0.0588235294117647, 1, 0.1875, 0.111111111111111, 1, 0.176470588235294, 1, 0.227272727272727, 0.2, 1, 0.333333333333333, 0.142857142857143, 1, 1, 0.105263157894737, 1, 0.230769230769231, 1, 1, 1, 0.0588235294117647, 0.2, 1, 0.571428571428571, 1, 1, 1, 0.125, 1, 1, 0.3, 1, 1, 1, 0.230769230769231, 0.25, 1, 1, 1, 0.133333333333333, 1, 1, 1, 1, 0.0588235294117647, 0.0909090909090909, 1, 1, 1, 1, 0.263157894736842, 1, 0.1, 0.25, 0.0714285714285714, 0.2, 1, 0.25, 1, 0.1, 0.0625, 0.0714285714285714, 1, 1, 0.125, 1, 1, 1, 0.0588235294117647, 1, 1, 1, 0.210526315789474, 1, 1, 0.238095238095238, 0.2, 0.0833333333333333, 0.166666666666667, 0.2, 1, 0.25, 0.35, 0.3, 1, 1, 1, 0.105263157894737, 1, 1, 1, 0.166666666666667, 0.272727272727273, 1, 1, 0.5, 1, 0.5, 1, 1, 0.176470588235294, 1, 1, 1, 0.25, 1, 1, 0.315789473684211, 0.4, 1, 1, 1, 1, 1, 1, 1, 1, 0.15, 1, 1, 1, 1, 0.3125, 1, 1, 1, 1, 0.333333333333333, 1, 1, 1, 0.157894736842105, 1, 1, 1, 0.3125, 1, 1, 0.0526315789473684, 0.333333333333333, 1, 1, 1, 1, 1, 0.157894736842105, 0.25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.473684210526316, 1, 0.181818181818182, 0.285714285714286, 1, 0.285714285714286, 1, 1, 1, 1, 0.130434782608696, 0.3, 1, 1, 1, 1, 1, 0.222222222222222, 0.25, 1, 1, 1, 1, 0.235294117647059, 1, 1, 1, 0.125, 1, 0.2, 1, 0.117647058823529, 0.375, 0.1875, 1, 0.19047619047619, 1, 1, 1, 1, 0.333333333333333, 1, 0.176470588235294, 0.2, 1, 0.263157894736842, 1, 0.333333333333333, 0.0555555555555556, 1, 1, 1, 0.5, 1, 0.294117647058823, 1, 0.2, 1, 1, 0.166666666666667, 1, 0.142857142857143, 0.105263157894737, 1, 0.166666666666667, 1, 1, 1, 1, 1, 1, 1, 1, 0.25, 1, 1, 1, 1, 0.166666666666667, 1, 1, 1, 0.2, 0.166666666666667, 1, 0.333333333333333, 0.111111111111111, 0.2, 0.333333333333333, 1, 1, 1, 1, 0.142857142857143, 1, 1, 0.375, 1, 1, 1, 1, 0.294117647058823, 1, 0.0625, 1, 0.3, 0.0555555555555556, 1, 0.166666666666667, 1, 1, 1, 1, 1, 1, 1, 0.2, 1, 0.5, 0.19047619047619, 1, 1, 1, 0.2, 0.2, 0.0588235294117647, 1, 1, 0.1, 1, 1, 0.2, 1, 0.0952380952380952, 1, 0.1875, 0.166666666666667, 1, 1, 0.0526315789473684, 1, 1, 0.157894736842105, 1, 1, 0.1, 1, 1, 0.428571428571429, 0.285714285714286, 1, 0.142857142857143, 1, 1, 1, 1, 1, 1, 1, 1, 0.333333333333333, 1, 1, 0.125, 0.25, 0.0588235294117647, 0.117647058823529, 1, 0.111111111111111, 1, 0.235294117647059, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.285714285714286, 1, 0.157894736842105, 1, 0.333333333333333, 1, 1, 1, 0.0526315789473684, 1, 0.230769230769231, 1, 1, 1, 1, 1, 1, 1, 0.1875, 0.0588235294117647, 1, 1, 0.235294117647059, 1, 1, 0.266666666666667, 1, 1, 1, 1, 1, 0.25, 1, 1, 0.2, 1, 1, 0.0588235294117647, 0.0526315789473684, 0.133333333333333, 1, 0.0625, 1, 1, 1, 0.285714285714286, 1, 0.0769230769230769, 0.176470588235294, 1, 0.4, 0.111111111111111, 1, 1, 1, 0.1, 1, 1, 0.1, 0.333333333333333, 1, 0.0714285714285714, 0.2, 0.142857142857143, 1, 0.4, 1, 0.25, 1, 1, 1, 0.2, 1, 0.1, 1, 1, 0.285714285714286, 1, 0.2, 0.05, 1, 0.230769230769231, 0.466666666666667, 1, 0.133333333333333, 1, 0.0909090909090909, 1, 1, 1, 0.333333333333333, 0.375, 0.125, 0.153846153846154, 1, 1, 0.375, 1, 0.05, 1, 0.0555555555555556, 1, 0.0588235294117647, 0.533333333333333, 1, 0.157894736842105, 0.4, 1, 1, 1, 1, 1, 0.166666666666667, 1, 1, 0.117647058823529, 0.05, 1, 1, 0.411764705882353, 0.363636363636364, 1, 1, 1, 0.333333333333333, 1, 1, 1, 0.05, 0.1, 1, 1, 1, 1, 1, 1, 0.157894736842105, 0.388888888888889, 1, 0.25, 0.6, 0.0666666666666667, 1, 0.5, 1, 0.0555555555555556, 0.166666666666667, 1, 0.222222222222222, 1, 0.294117647058823, 1, 0.111111111111111, 0.157894736842105, 1, 0.153846153846154, 1, 1, 0.0666666666666667, 1, 1, 1, 1, 1, 1, 0.0526315789473684, 0.15, 0.111111111111111, 1, 1, 0.05, 0.25, 1, 1, 0.222222222222222, 1, 0.25, 1, 0.294117647058823, 1, 0.1875, 0.230769230769231, 0.19047619047619, 0.25, 0.153846153846154, 0.2, 1, 0.111111111111111, 1, 1, 1, 1, 1, 0.157894736842105, 0.3125, 0.6, 0.19047619047619, 1, 0.285714285714286, 1, 0.166666666666667, 1, 0.222222222222222, 1, 1, 0.25, 0.6, 0.0714285714285714, 1, 0.111111111111111, 0.157894736842105, 0.125, 0.25, 0.125, 0.25, 0.263157894736842, 0.222222222222222, 1, 0.0666666666666667, 1, 1, 1, 1, 1, 0.333333333333333, 0.15, 0.142857142857143, 0.133333333333333, 1, 1, 1, 0.153846153846154, 0.0666666666666667, 0.0526315789473684, 0.5, 1, 0.05, 0.222222222222222, 1, 1, 0.142857142857143, 0.125, 0.105263157894737, 1, 1, 0.1, 1, 1, 0.157894736842105, 1, 1, 1, 0.142857142857143, 1, 1, 0.294117647058823, 0.142857142857143, 1, 0.25, 0.1, 0.1875, 1, 1, 0.666666666666667, 1, 1, 1, 1, 1, 0.142857142857143, 1, 0.166666666666667, 0.2, 0.333333333333333, 0.142857142857143, 1, 1, 1, 0.375, 1, 1, 1, 1, 1, 0.2, 1, 1, 0.153846153846154, 1, 1, 0.333333333333333, 1, 1, 1, 1, 0.0625, 0.117647058823529, 0.3125, 1, 1, 0.111111111111111, 1, 1, 1, 1, 1, 1, 1, 1, 0.142857142857143, 1, 1, 1, 0.1, 0.333333333333333, 1, 1, 1, 0.0526315789473684, 0.25, 1, 1, 1, 0.05, 1, 1, 1, 1, 0.0588235294117647, 0.2, 1, 1, 0.75, 0.2, 1, 1, 1, 0.4, 0.0666666666666667, 1, 0.2, 1, 1, 1, 0.157894736842105, 1, 0.05, 1, 0.368421052631579, 0.25, 0.0625, 1, 1, 1, 1, 1, 1, 1, 0.333333333333333, 0.235294117647059, 0.222222222222222, 1, 1, 1, 0.0588235294117647, 0.142857142857143, 1, 0.166666666666667, 0.272727272727273, 1, 1, 0.125, 1, 1, 1, 0.3, 0.333333333333333, 0.166666666666667, 0.388888888888889, 1, 0.333333333333333, 1, 0.166666666666667, 1, 1, 0.166666666666667, 0.117647058823529, 0.3, 1, 0.0555555555555556, 0.210526315789474, 0.117647058823529, 0.0714285714285714, 0.4, 0.142857142857143, 1, 1, 1, 0.2, 1, 0.105263157894737, 1, 0.142857142857143, 0.25, 1, 1, 0.0526315789473684, 0.0714285714285714, 0.125, 1, 0.3125, 1, 0.1875, 0.238095238095238, 1, 1, 1, 0.666666666666667, 1, 0.1875, 1, 0.0526315789473684, 1, 1, 0.111111111111111, 1, 1, 1, 0.05, 0.125, 1, 0.210526315789474, 0.0833333333333333, 1, 1, 0.0434782608695652, 1, 0.117647058823529, 1, 1, 1, 0.111111111111111, 0.333333333333333, 1, 1, 0.05, 0.2, 0.133333333333333, 1, 1, 0.153846153846154, 0.0625, 1, 1, 1, 0.0714285714285714, 1, 0.714285714285715, 0.1875, 1, 1, 1, 1, 0.0526315789473684, 0.111111111111111, 0.0625, 0.2, 1, 1, 0.428571428571429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0625, 0.333333333333333, 0.125, 0.0769230769230769, 0.111111111111111, 0.25, 0.111111111111111, 1, 0.25, 1, 1, 1, 1, 0.333333333333333, 1, 1, 0.0833333333333333, 0.166666666666667, 1, 1, 1, 0.235294117647059, 0.333333333333333, 1, 1, 1, 1, 1, 0.5, 1, 0.142857142857143, 1, 0.0625, 0.5, 0.333333333333333, 1, 1, 1, 1, 1, 0.2, 1, 1, 0.384615384615385, 0.35, 0.35, 1, 0.166666666666667, 0.0666666666666667, 1, 0.294117647058823, 0.0625, 0.111111111111111, 1, 0.666666666666667, 1, 0.117647058823529, 0.5, 0.117647058823529, 1, 1, 1, 0.15, 0.6, 1, 0.0625, 1, 0.125, 1, 1, 0.333333333333333, 1, 1, 1, 1, 0.4, 1, 0.181818181818182, 1, 0.2, 0.0714285714285714, 1, 0.0588235294117647, 0.272727272727273, 0.444444444444444, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.111111111111111, 0.25, 1, 1, 0.5, 1, 1, 0.111111111111111, 1, 1, 0.2, 1, 0.105263157894737, 0.5, 0.117647058823529, 0.0625, 0.333333333333333, 1, 1, 0.25, 0.117647058823529, 1, 1, 0.105263157894737, 1, 1, 0.142857142857143, 0.0526315789473684, 0.0625, 0.2, 0.333333333333333, 1, 0.111111111111111, 0.0833333333333333, 0.2, 1, 0.0526315789473684, 0.5, 1, 1, 1, 0.0714285714285714, 1, 0.3125, 0.0588235294117647, 0.333333333333333, 1, 1, 1, 0.0714285714285714, 1, 0.166666666666667, 0.210526315789474, 1, 0.1875, 0.142857142857143, 1, 0.166666666666667, 0.25, 0.176470588235294, 0.181818181818182, 0.333333333333333, 1, 0.0952380952380952, 1, 0.263157894736842, 1, 1, 1, 0.157894736842105, 0.0454545454545454, 0.315789473684211, 0.0833333333333333, 0.0588235294117647, 0.25, 0.0526315789473684, 1, 1, 0.142857142857143, 0.0833333333333333, 1, 0.294117647058823, 1, 0.142857142857143, 0.166666666666667, 1, 1, 1, 0.2, 1, 1, 1, 1, 1, 0.176470588235294, 1, 0.238095238095238, 1, 0.2, 0.111111111111111, 0.2, 1, 0.333333333333333, 1, 0.2, 1, 1, 1, 0.25, 1, 0.142857142857143, 0.5, 1, 0.0625, 0.0555555555555556, 1, 0.133333333333333, 1, 1, 0.230769230769231, 1, 1, 1, 1, 1, 1, 0.2, 1, 1, 1, 1, 0.5, 0.1, 1, 0.0625, 1, 1, 0.0555555555555556, 0.235294117647059, 0.222222222222222, 1, 1, 1, 1, 0.0666666666666667, 0.111111111111111, 1, 1, 1, 0.214285714285714, 1, 0.368421052631579, 1, 1, 1, 0.111111111111111, 0.3125, 0.0909090909090909, 0.25, 0.0769230769230769, 1, 0.125, 1, 0.125, 1, 1, 0.0625, 1, 1, 0.333333333333333, 1, 1, 1, 1, 1, 0.133333333333333, 1, 0.0625, 1, 0.166666666666667, 1, 1, 1, 0.222222222222222, 1, 1, 0.25, 1, 1, 1, 1, 1, 1, 1, 0.263157894736842, 0.25, 0.1, 1, 0.266666666666667, 1, 1, 1, 0.0666666666666667, 1, 1, 1, 0.25, 1, 0.357142857142857, 1, 0.25, 1, 0.142857142857143, 1, 1, 0.0588235294117647, 1, 1, 1, 0.571428571428571, 1, 1, 0.25, 1, 1, 1, 1, 1, 1, 0.176470588235294, 1, 0.461538461538462, 1, 0.0625, 1, 1, 0.0714285714285714, 0.0526315789473684, 0.0666666666666667, 0.142857142857143, 0.142857142857143, 1, 1, 0.1, 0.5, 1, 0.0555555555555556, 1, 0.2, 1, 1, 0.294117647058823, 1, 0.105263157894737, 0.153846153846154, 0.2, 1, 0.0625, 0.333333333333333, 1, 0.2, 1, 0.0666666666666667, 0.25, 0.0526315789473684, 1, 1, 0.333333333333333, 1, 1, 0.0666666666666667, 1, 0.0625, 0.333333333333333, 1, 1, 0.25, 1, 0.0666666666666667, 0.166666666666667, 0.2, 1, 0.166666666666667, 1, 1, 1, 1, 1, 0.5, 1, 0.25, 1, 0.25, 0.25, 1, 0.315789473684211, 0.125, 1, 1, 1, 0.0625, 0.111111111111111, 0.176470588235294, 1, 1, 1, 1, 0.142857142857143, 1, 0.0666666666666667, 0.0714285714285714, 1, 1, 0.176470588235294, 1, 0.117647058823529, 0.0714285714285714, 1, 1, 1, 1, 1, 0.2, 1, 0.5, 1, 1, 1, 1, 1, 0.0952380952380952, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0833333333333333, 1, 1, 1, 0.333333333333333, 1, 0.272727272727273, 1, 1, 1, 1, 0.411764705882353, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.125, 1, 0.125, 0.333333333333333, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.333333333333333, 0.352941176470588, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.0769230769230769, 0.142857142857143, 1, 1, 1, 1, 1, 1, 1, 0.157894736842105, 0.25, 1, 0.45, 1, 1, 1, 1, 0.0909090909090909, 1, 1, 1, 1, 1, 1, 1, 0.294117647058823, 1, 1, 1, 1, 1, 1, 1, 0.153846153846154, 1, 1, 1, 0.421052631578947, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.5, 1, 1, 1, 1, 1, 1, 1, 0.222222222222222, 0.210526315789474, 1, 1, 0.333333333333333, 1, 0.142857142857143, 1, 1, 1, 0.142857142857143, 1, 1, 1, 1, 1, 1, 1, 1, 0.333333333333333, 1, 1, 1, 0.0555555555555556, 0.5, 1, 0.2, 1, 1, 1, 0.0434782608695652, 1, 1, 1, 1, 1, 0.476190476190476, 1, 1, 1, 1, 0.0714285714285714, 1, 1, 1, 0.153846153846154, 0.125, 1, 1, 1, 1, 1, 1, 0.117647058823529, 0.333333333333333, 1, 0.266666666666667, 1, 0.25, 1, 1, 1, 0.333333333333333, 1, 1, 1, 1, 0.333333333333333, 1, 1, 1, 0.1875, 0.428571428571429, 0.142857142857143, 0.3125, 1, 1, 1, 1, 1, 0.142857142857143, 1, 0.5, 1, 0.166666666666667, 0.2, 1, 1, 1, 0.4, 1, 1, 1, 1, 1, 0.357142857142857, 0.333333333333333, 0.0952380952380952, 0.0909090909090909, 1, 0.2, 1, 1, 1, 1, 0.176470588235294, 0.75, 0.5, 1, 1, 0.636363636363636, 1, 1, 1, 0.210526315789474, 0.3125, 1, 1, 1, 1, 1, 0.444444444444444, 1, 1, 1, 1, 0.19047619047619, 0.333333333333333, 0.5, 0.117647058823529, 1, 1, 0.470588235294118, 0.133333333333333, 1, 1, 0.111111111111111, 0.176470588235294, 0.125, 1, 0.222222222222222, 1, 1, 1, 0.117647058823529, 0.1875, 0.368421052631579, 0.285714285714286, 1, 1, 1, 1, 1, 0.470588235294118, 1, 0.25, 1, 1, 1, 0.428571428571429, 1, 0.2, 0.3, 1, 1, 1, 0.19047619047619, 0.176470588235294, 0.111111111111111, 0.428571428571429, 0.125, 0.173913043478261, 1, 1, 0.333333333333333, 0.19047619047619, 0.176470588235294, 0.176470588235294, 1, 0.0555555555555556, 1, 1, 1, 1, 0.25, 1, 1, 1, 0.571428571428571, 1, 1, 1, 0.25, 0.3, 0.176470588235294, 1, 0.117647058823529, 1, 1, 0.0588235294117647, 0.176470588235294, 1, 1, 0.5, 0.181818181818182, 1, 1, 0.357142857142857, 0.333333333333333, 0.176470588235294, 0.333333333333333, 0.333333333333333, 0.210526315789474, 0.3, 1, 0.0909090909090909, 0.176470588235294, 1, 0.15, 0.166666666666667, 1, 0.235294117647059, 1, 0.375, 0.357142857142857, 0.117647058823529, 0.157894736842105, 1, 1, 1, 0.333333333333333, 0.0666666666666667, 1, 1, 0.0909090909090909, 1, 0.315789473684211, 0.05, 0.0909090909090909, 0.1875, 0.533333333333333, 1, 0.4, 1, 1, 0.333333333333333, 1, 0.333333333333333, 0.181818181818182, 1, 1, 1, 1, 0.0769230769230769, 0.375, 1, 1, 1, 0.333333333333333, 0.35, 1, 0.176470588235294, 0.375, 1, 0.352941176470588, 1, 1, 0.133333333333333, 1, 1, 0.3, 0.222222222222222, 1, 0.368421052631579, 1, 1, 0.1875, 1, 0.15, 1, 1, 1, 1, 0.4, 0.25, 1, 0.0714285714285714, 1, 0.368421052631579, 0.2, 1, 1, 0.0526315789473684, 1, 0.0526315789473684, 0.0526315789473684, 0.1875, 0.357142857142857, 0.375, 0.05, 0.0555555555555556, 0.05, 0.0476190476190476, 0.5, 0.0555555555555556, 0.05, 0.0476190476190476, 0.222222222222222, 0.0952380952380952, 0.4, 1, 0.0952380952380952, 0.0555555555555556, 0.272727272727273, 0.166666666666667, 1, 0.05, 1, 1, 1, 1, 1, 1, 1, 0.375, 1, 1, 0.176470588235294, 1, 1, 0.285714285714286, 0.1875, 0.125, 0.125, 1, 0.1875, 0.222222222222222, 1, 1, 0.277777777777778, 0.105263157894737, 0.25, 0.111111111111111, 1, 0.111111111111111, 0.25, 2.19722457733622, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.63905732961526, 0, 2.56494935746154, 2.70805020110221, 0, 0, 1.38629436111989, 2.39789527279837, 1.6094379124341, 0, 0, 2.484906649788, 1.09861228866811, 2.83321334405622, 2.484906649788, 2.56494935746154, 2.70805020110221, 2.94443897916644, 2.70805020110221, 0, 0, 2.56494935746154, 1.09861228866811, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.30258509299405, 2.39789527279837, 0, 2.70805020110221, 2.70805020110221, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 0.693147180559945, 0, 0, 0, 1.79175946922805, 2.39789527279837, 0, 2.83321334405622, 2.484906649788, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 2.77258872223978, 2.70805020110221, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.484906649788, 0, 0, 2.39789527279837, 0, 1.6094379124341, 1.94591014905531, 0, 2.83321334405622, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 2.70805020110221, 2.484906649788, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0, 2.63905732961526, 0, 0, 0, 0, 1.79175946922805, 0, 1.38629436111989, 1.09861228866811, 1.79175946922805, 0, 2.63905732961526, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 2.63905732961526, 0, 2.39789527279837, 0, 0, 2.83321334405622, 0, 2.56494935746154, 2.19722457733622, 0, 2.70805020110221, 0, 2.484906649788, 2.484906649788, 0, 2.19722457733622, 1.94591014905531, 0, 0, 2.77258872223978, 0, 2.30258509299405, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 0, 0, 0, 2.56494935746154, 0, 0, 2.07944154167984, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 0, 2.56494935746154, 0, 2.07944154167984, 1.38629436111989, 2.63905732961526, 2.07944154167984, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 2.63905732961526, 0, 0, 2.07944154167984, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.63905732961526, 0, 0, 2.77258872223978, 1.6094379124341, 2.39789527279837, 1.79175946922805, 1.6094379124341, 0, 1.38629436111989, 2.39789527279837, 2.07944154167984, 0, 0, 0, 2.89037175789616, 0, 0, 0, 1.79175946922805, 2.19722457733622, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 2.70805020110221, 0, 0, 0, 1.94591014905531, 0, 0, 2.56494935746154, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.39789527279837, 0, 0, 2.94443897916644, 1.94591014905531, 0, 0, 0, 0, 0, 2.70805020110221, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 2.94443897916644, 1.79175946922805, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 0, 0, 0, 0, 0, 2.70805020110221, 2.56494935746154, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.07944154167984, 0, 2.30258509299405, 0, 2.77258872223978, 1.79175946922805, 2.56494935746154, 0, 2.89037175789616, 0, 0, 0, 0, 1.09861228866811, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 2.484906649788, 0, 0, 0, 0.693147180559945, 0, 2.484906649788, 0, 1.6094379124341, 0, 0, 2.77258872223978, 0, 2.83321334405622, 2.83321334405622, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.56494935746154, 1.79175946922805, 0, 1.94591014905531, 2.19722457733622, 2.56494935746154, 1.09861228866811, 0, 0, 0, 0, 2.83321334405622, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.56494935746154, 0, 2.70805020110221, 0, 2.07944154167984, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.89037175789616, 0, 0, 0, 2.56494935746154, 2.63905732961526, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 2.484906649788, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 2.30258509299405, 0, 0, 1.6094379124341, 1.79175946922805, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.63905732961526, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.77258872223978, 0, 1.09861228866811, 0, 0, 0, 2.94443897916644, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 2.56494935746154, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.6094379124341, 0, 0, 2.83321334405622, 2.83321334405622, 2.56494935746154, 0, 2.70805020110221, 0, 0, 0, 1.6094379124341, 0, 2.56494935746154, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 0, 0, 2.89037175789616, 0, 0, 2.83321334405622, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.56494935746154, 2.89037175789616, 0, 2.30258509299405, 2.19722457733622, 0, 2.56494935746154, 0, 2.99573227355399, 0, 0, 0, 2.39789527279837, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 0, 2.39789527279837, 0, 2.94443897916644, 0, 2.89037175789616, 0, 2.63905732961526, 1.94591014905531, 0, 2.77258872223978, 2.19722457733622, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.89037175789616, 0, 0, 2.30258509299405, 2.07944154167984, 0, 0, 0, 2.30258509299405, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.39789527279837, 0, 2.484906649788, 1.09861228866811, 2.70805020110221, 0, 0.693147180559945, 0, 2.77258872223978, 2.77258872223978, 0, 2.70805020110221, 0, 2.56494935746154, 0, 2.19722457733622, 2.63905732961526, 0, 2.484906649788, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.83321334405622, 2.70805020110221, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 2.07944154167984, 0, 1.38629436111989, 0, 2.56494935746154, 0, 2.56494935746154, 2.19722457733622, 2.89037175789616, 1.94591014905531, 2.484906649788, 1.6094379124341, 0, 2.19722457733622, 0, 0, 0, 0, 0, 2.63905732961526, 2.484906649788, 1.09861228866811, 2.63905732961526, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.56494935746154, 1.09861228866811, 2.63905732961526, 0, 2.19722457733622, 2.70805020110221, 2.63905732961526, 1.38629436111989, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 0, 0, 0, 0, 0, 1.94591014905531, 2.83321334405622, 1.94591014905531, 2.63905732961526, 0, 0, 0, 2.484906649788, 2.70805020110221, 2.63905732961526, 0.693147180559945, 0, 2.89037175789616, 2.07944154167984, 0, 0, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 1.79175946922805, 0, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.94591014905531, 0, 2.94443897916644, 1.6094379124341, 1.09861228866811, 2.56494935746154, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 0, 1.09861228866811, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.30258509299405, 1.6094379124341, 0, 0, 0, 2.94443897916644, 1.38629436111989, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 2.484906649788, 0, 0, 0, 2.70805020110221, 0, 2.89037175789616, 0, 2.30258509299405, 2.56494935746154, 2.70805020110221, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 2.63905732961526, 2.63905732961526, 0, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.70805020110221, 2.19722457733622, 0, 0, 2.70805020110221, 0, 0, 0, 2.07944154167984, 1.09861228866811, 2.39789527279837, 2.30258509299405, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.83321334405622, 2.70805020110221, 2.77258872223978, 2.63905732961526, 1.38629436111989, 2.77258872223978, 0, 0, 0, 1.6094379124341, 0, 2.70805020110221, 0, 2.94443897916644, 2.63905732961526, 0, 0, 2.83321334405622, 2.56494935746154, 2.63905732961526, 0, 2.39789527279837, 0, 2.63905732961526, 2.63905732961526, 0, 0, 0, 0.693147180559945, 0, 2.56494935746154, 0, 2.83321334405622, 0, 0, 2.19722457733622, 0, 0, 0, 2.94443897916644, 2.63905732961526, 0, 2.70805020110221, 2.484906649788, 0, 0, 3.04452243772342, 0, 2.77258872223978, 0, 0, 0, 2.19722457733622, 2.30258509299405, 0, 0, 2.89037175789616, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.63905732961526, 0, 1.6094379124341, 2.56494935746154, 0, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 1.09861228866811, 2.56494935746154, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 1.38629436111989, 0, 0, 0, 0, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.56494935746154, 2.30258509299405, 0, 0, 0, 0, 0, 2.30258509299405, 0, 1.94591014905531, 0, 2.70805020110221, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.07944154167984, 2.63905732961526, 2.56494935746154, 0, 2.70805020110221, 2.39789527279837, 0, 2.484906649788, 2.70805020110221, 2.19722457733622, 0, 1.6094379124341, 0, 2.56494935746154, 1.79175946922805, 2.63905732961526, 0, 0, 0, 2.89037175789616, 1.09861228866811, 0, 2.70805020110221, 0, 2.39789527279837, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 2.30258509299405, 0, 1.6094379124341, 2.56494935746154, 0, 2.83321334405622, 2.19722457733622, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 2.63905732961526, 0, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 2.77258872223978, 2.70805020110221, 1.09861228866811, 0, 0, 2.56494935746154, 2.77258872223978, 0, 0, 2.77258872223978, 0, 0, 1.94591014905531, 2.89037175789616, 2.70805020110221, 2.63905732961526, 1.09861228866811, 0, 2.19722457733622, 2.39789527279837, 2.56494935746154, 0, 2.83321334405622, 0.693147180559945, 0, 0, 0, 2.63905732961526, 0, 2.39789527279837, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.56494935746154, 0, 1.79175946922805, 2.56494935746154, 0, 2.30258509299405, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.63905732961526, 2.94443897916644, 1.09861228866811, 0, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 2.83321334405622, 1.38629436111989, 2.83321334405622, 0, 0, 2.56494935746154, 2.484906649788, 0, 2.56494935746154, 0, 2.56494935746154, 1.79175946922805, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.484906649788, 2.63905732961526, 2.56494935746154, 0, 1.6094379124341, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 0, 1.94591014905531, 0.693147180559945, 0, 2.70805020110221, 2.83321334405622, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0.693147180559945, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.70805020110221, 2.63905732961526, 2.56494935746154, 0, 0, 0, 0, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.39789527279837, 0, 2.30258509299405, 0, 0, 0, 2.19722457733622, 2.484906649788, 2.39789527279837, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 2.63905732961526, 0, 0, 2.70805020110221, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.70805020110221, 0, 2.70805020110221, 0, 0, 0, 2.07944154167984, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 1.94591014905531, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 2.484906649788, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.83321334405622, 2.70805020110221, 1.79175946922805, 1.94591014905531, 0, 0, 2.30258509299405, 1.09861228866811, 0, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.70805020110221, 1.09861228866811, 0, 2.19722457733622, 0, 2.63905732961526, 1.38629436111989, 2.94443897916644, 0, 0, 1.09861228866811, 0, 0, 2.63905732961526, 0, 2.70805020110221, 1.09861228866811, 0, 0, 1.38629436111989, 0, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 1.94591014905531, 0, 2.56494935746154, 0, 2.56494935746154, 1.38629436111989, 0, 2.56494935746154, 2.63905732961526, 0, 0, 0, 2.70805020110221, 2.83321334405622, 2.70805020110221, 0, 0, 0, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.77258872223978, 2.63905732961526, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 0, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 1.09861228866811, 0, 2.19722457733622, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.07944154167984, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 2.63905732961526, 1.94591014905531, 0, 2.19722457733622, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 2.70805020110221, 0, 0, 2.56494935746154, 0, 1.94591014905531, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 2.484906649788, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 0, 2.39789527279837, 0, 2.484906649788, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.56494935746154, 1.6094379124341, 1.94591014905531, 2.484906649788, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0.693147180559945, 0, 2.70805020110221, 1.6094379124341, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 2.19722457733622, 1.09861228866811, 2.70805020110221, 2.77258872223978, 0, 1.6094379124341, 0, 0, 0, 0, 2.63905732961526, 0.693147180559945, 2.30258509299405, 0, 0, 1.6094379124341, 0, 0, 0, 2.70805020110221, 2.30258509299405, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 1.09861228866811, 2.77258872223978, 0, 0, 2.07944154167984, 2.63905732961526, 0, 0, 2.19722457733622, 2.63905732961526, 2.56494935746154, 0, 2.07944154167984, 0, 0, 0, 2.77258872223978, 2.484906649788, 2.484906649788, 1.79175946922805, 0, 0, 0, 0, 0, 2.07944154167984, 0, 1.94591014905531, 0, 0, 0, 1.6094379124341, 0, 2.63905732961526, 2.07944154167984, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.19722457733622, 1.6094379124341, 2.07944154167984, 2.89037175789616, 0, 0, 1.09861228866811, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.56494935746154, 2.07944154167984, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.77258872223978, 2.70805020110221, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 2.19722457733622, 1.09861228866811, 2.63905732961526, 1.09861228866811, 1.94591014905531, 2.56494935746154, 2.07944154167984, 0, 2.39789527279837, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 0, 2.19722457733622, 2.19722457733622, 2.77258872223978, 2.39789527279837, 0, 0, 0, 1.6094379124341, 2.70805020110221, 0, 0, 2.39789527279837, 0, 2.63905732961526, 2.77258872223978, 2.39789527279837, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 1.94591014905531, 0, 1.09861228866811, 2.63905732961526, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 0, 0, 0, 1.09861228866811, 2.484906649788, 0, 2.63905732961526, 2.30258509299405, 0, 2.484906649788, 0, 0, 2.56494935746154, 0, 0, 2.07944154167984, 2.56494935746154, 0, 2.39789527279837, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 0, 0, 2.77258872223978, 0, 2.77258872223978, 2.77258872223978, 2.484906649788, 2.19722457733622, 2.30258509299405, 2.99573227355399, 2.70805020110221, 2.99573227355399, 2.94443897916644, 1.09861228866811, 2.70805020110221, 2.99573227355399, 2.94443897916644, 2.07944154167984, 2.94443897916644, 2.30258509299405, 0, 2.94443897916644, 2.70805020110221, 2.07944154167984, 1.79175946922805, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 2.70805020110221, 0, 2.56494935746154, 2.56494935746154, 0, 0, 2.484906649788, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.70805020110221, 2.56494935746154, 2.19722457733622, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.63905732961526, 0, 2.63905732961526, 2.70805020110221, 0, 0, 1.38629436111989, 2.39789527279837, 1.6094379124341, 0, 0, 2.484906649788, 1.09861228866811, 2.83321334405622, 2.484906649788, 2.56494935746154, 2.70805020110221, 2.94443897916644, 2.70805020110221, 0, 0, 2.56494935746154, 1.09861228866811, 0, 0, 2.56494935746154, 0, 1.09861228866811, 0, 2.30258509299405, 2.39789527279837, 0, 2.70805020110221, 2.70805020110221, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 0.693147180559945, 0, 0, 0, 1.79175946922805, 2.39789527279837, 0, 2.83321334405622, 2.484906649788, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 2.77258872223978, 2.77258872223978, 2.70805020110221, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.484906649788, 0, 0, 2.39789527279837, 0, 1.6094379124341, 1.94591014905531, 0, 2.83321334405622, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 2.70805020110221, 2.484906649788, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0, 2.63905732961526, 0, 0, 0, 0, 1.79175946922805, 0, 1.38629436111989, 1.09861228866811, 1.79175946922805, 0, 2.63905732961526, 0, 0, 0, 2.484906649788, 0, 2.63905732961526, 2.63905732961526, 0, 2.39789527279837, 0, 0, 2.83321334405622, 0, 2.63905732961526, 2.19722457733622, 0, 2.70805020110221, 0, 2.56494935746154, 2.484906649788, 0, 2.19722457733622, 1.94591014905531, 0, 0, 2.83321334405622, 0, 2.30258509299405, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 0, 0, 0, 2.63905732961526, 0, 0, 2.07944154167984, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 0, 2.56494935746154, 0, 2.07944154167984, 1.38629436111989, 2.63905732961526, 2.07944154167984, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 2.63905732961526, 0, 0, 2.07944154167984, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 0, 2.77258872223978, 1.6094379124341, 2.484906649788, 1.79175946922805, 1.6094379124341, 0, 1.38629436111989, 2.39789527279837, 2.07944154167984, 0, 0, 0, 2.89037175789616, 0, 0, 0, 1.79175946922805, 2.19722457733622, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 2.70805020110221, 0, 0, 0, 1.94591014905531, 0, 0, 2.56494935746154, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.39789527279837, 0, 0, 2.94443897916644, 1.94591014905531, 0, 0, 0, 0, 0, 2.70805020110221, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 2.94443897916644, 1.79175946922805, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 0, 0, 0, 0, 0, 2.70805020110221, 2.56494935746154, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.07944154167984, 0, 2.30258509299405, 0, 2.77258872223978, 1.79175946922805, 2.56494935746154, 0, 2.89037175789616, 0, 0, 0, 0, 1.09861228866811, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 2.484906649788, 0, 0, 0, 0.693147180559945, 0, 2.484906649788, 0, 1.6094379124341, 0, 0, 2.77258872223978, 0, 2.83321334405622, 2.83321334405622, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.56494935746154, 1.79175946922805, 0, 1.94591014905531, 2.19722457733622, 2.63905732961526, 1.09861228866811, 0, 0, 0, 0, 2.83321334405622, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.56494935746154, 0, 2.70805020110221, 0, 2.07944154167984, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.89037175789616, 0, 0, 0, 2.56494935746154, 2.70805020110221, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 2.484906649788, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 2.30258509299405, 0, 0, 1.6094379124341, 1.79175946922805, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.63905732961526, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.77258872223978, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.77258872223978, 0, 1.09861228866811, 0, 0, 0, 2.94443897916644, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 2.56494935746154, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.6094379124341, 0, 0, 2.83321334405622, 2.89037175789616, 2.56494935746154, 0, 2.77258872223978, 0, 0, 0, 1.6094379124341, 0, 2.56494935746154, 2.63905732961526, 0, 1.94591014905531, 2.77258872223978, 0, 0, 0, 2.89037175789616, 0, 0, 2.83321334405622, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.56494935746154, 2.89037175789616, 0, 2.30258509299405, 2.19722457733622, 0, 2.56494935746154, 0, 2.99573227355399, 0, 0, 0, 2.39789527279837, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 0, 2.39789527279837, 0, 2.94443897916644, 0, 2.89037175789616, 0, 2.63905732961526, 1.94591014905531, 0, 2.77258872223978, 2.30258509299405, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.89037175789616, 0, 0, 2.30258509299405, 2.07944154167984, 0, 0, 0, 2.39789527279837, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.39789527279837, 0, 2.484906649788, 1.09861228866811, 2.70805020110221, 0, 0.693147180559945, 0, 2.77258872223978, 2.77258872223978, 0, 2.70805020110221, 0, 2.56494935746154, 0, 2.19722457733622, 2.63905732961526, 0, 2.484906649788, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.83321334405622, 2.70805020110221, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 2.07944154167984, 0, 1.38629436111989, 0, 2.56494935746154, 0, 2.56494935746154, 2.19722457733622, 2.89037175789616, 1.94591014905531, 2.484906649788, 1.6094379124341, 0, 2.19722457733622, 0, 0, 0, 0, 0, 2.63905732961526, 2.484906649788, 1.09861228866811, 2.63905732961526, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.56494935746154, 1.09861228866811, 2.63905732961526, 0, 2.19722457733622, 2.70805020110221, 2.63905732961526, 1.38629436111989, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 0, 0, 0, 0, 0, 1.94591014905531, 2.83321334405622, 1.94591014905531, 2.63905732961526, 0, 0, 0, 2.484906649788, 2.70805020110221, 2.70805020110221, 0.693147180559945, 0, 2.89037175789616, 2.07944154167984, 0, 0, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 1.79175946922805, 0, 1.94591014905531, 2.30258509299405, 2.63905732961526, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.94591014905531, 0, 2.99573227355399, 1.6094379124341, 1.09861228866811, 2.56494935746154, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 0, 1.09861228866811, 0, 0, 0, 0, 2.77258872223978, 2.77258872223978, 2.484906649788, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.30258509299405, 1.6094379124341, 0, 0, 0, 2.94443897916644, 1.38629436111989, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 2.56494935746154, 0, 0, 0, 2.77258872223978, 0, 2.89037175789616, 0, 2.30258509299405, 2.56494935746154, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 2.63905732961526, 2.63905732961526, 0, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.70805020110221, 2.19722457733622, 0, 0, 2.70805020110221, 0, 0, 0, 2.07944154167984, 1.09861228866811, 2.39789527279837, 2.30258509299405, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.83321334405622, 2.70805020110221, 2.77258872223978, 2.63905732961526, 1.38629436111989, 2.77258872223978, 0, 0, 0, 1.6094379124341, 0, 2.70805020110221, 0, 2.94443897916644, 2.63905732961526, 0, 0, 2.83321334405622, 2.56494935746154, 2.63905732961526, 0, 2.484906649788, 0, 2.63905732961526, 2.63905732961526, 0, 0, 0, 0.693147180559945, 0, 2.56494935746154, 0, 2.89037175789616, 0, 0, 2.19722457733622, 0, 0, 0, 2.94443897916644, 2.70805020110221, 0, 2.70805020110221, 2.484906649788, 0, 0, 3.04452243772342, 0, 2.77258872223978, 0, 0, 0, 2.19722457733622, 2.30258509299405, 0, 0, 2.89037175789616, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.77258872223978, 0, 0, 0, 2.63905732961526, 0, 1.6094379124341, 2.63905732961526, 0, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.63905732961526, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 1.38629436111989, 0, 0, 0, 0, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.56494935746154, 2.30258509299405, 0, 0, 0, 0, 0, 2.30258509299405, 0, 1.94591014905531, 0, 2.77258872223978, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.07944154167984, 2.63905732961526, 2.56494935746154, 0, 2.70805020110221, 2.39789527279837, 0, 2.484906649788, 2.70805020110221, 2.19722457733622, 0, 1.6094379124341, 0, 2.63905732961526, 1.79175946922805, 2.63905732961526, 0, 0, 0, 2.89037175789616, 1.09861228866811, 0, 2.77258872223978, 0, 2.39789527279837, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 2.30258509299405, 0, 1.6094379124341, 2.63905732961526, 0, 2.83321334405622, 2.19722457733622, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 2.63905732961526, 0, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 2.77258872223978, 2.77258872223978, 1.09861228866811, 0, 0, 2.56494935746154, 2.77258872223978, 0, 0, 2.83321334405622, 0, 0, 1.94591014905531, 2.89037175789616, 2.77258872223978, 2.63905732961526, 1.09861228866811, 0, 2.19722457733622, 2.39789527279837, 2.56494935746154, 0, 2.83321334405622, 0.693147180559945, 0, 0, 0, 2.63905732961526, 0, 2.39789527279837, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.56494935746154, 0, 1.79175946922805, 2.56494935746154, 0, 2.30258509299405, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.63905732961526, 2.94443897916644, 1.09861228866811, 0, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 2.83321334405622, 1.38629436111989, 2.89037175789616, 0, 0, 2.56494935746154, 2.484906649788, 0, 2.56494935746154, 0, 2.56494935746154, 1.79175946922805, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.484906649788, 2.63905732961526, 2.56494935746154, 0, 1.6094379124341, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 0, 1.94591014905531, 0.693147180559945, 0, 2.77258872223978, 2.83321334405622, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0.693147180559945, 2.83321334405622, 0, 2.77258872223978, 0, 0, 2.70805020110221, 2.63905732961526, 2.56494935746154, 0, 0, 0, 0, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.39789527279837, 0, 2.30258509299405, 0, 0, 0, 2.19722457733622, 2.484906649788, 2.39789527279837, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 2.63905732961526, 0, 0, 2.77258872223978, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 0, 2.07944154167984, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 1.94591014905531, 2.83321334405622, 0, 2.484906649788, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 2.56494935746154, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 1.94591014905531, 0, 2.77258872223978, 0, 0, 2.56494935746154, 2.89037175789616, 2.70805020110221, 1.79175946922805, 1.94591014905531, 0, 0, 2.30258509299405, 1.09861228866811, 0, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.70805020110221, 1.09861228866811, 0, 2.19722457733622, 0, 2.63905732961526, 1.38629436111989, 2.94443897916644, 0, 0, 1.09861228866811, 0, 0, 2.63905732961526, 0, 2.77258872223978, 1.09861228866811, 0, 0, 1.38629436111989, 0, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 2.07944154167984, 0, 2.56494935746154, 0, 2.56494935746154, 1.38629436111989, 0, 2.56494935746154, 2.63905732961526, 0, 0, 0, 2.77258872223978, 2.83321334405622, 2.70805020110221, 0, 0, 0, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.77258872223978, 2.63905732961526, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 0, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 1.09861228866811, 0, 2.19722457733622, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.07944154167984, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 2.63905732961526, 1.94591014905531, 0, 2.19722457733622, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 2.70805020110221, 0, 0, 2.56494935746154, 0, 1.94591014905531, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 2.484906649788, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 0, 2.39789527279837, 0, 2.484906649788, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.56494935746154, 1.6094379124341, 1.94591014905531, 2.484906649788, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0.693147180559945, 0, 2.70805020110221, 1.6094379124341, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 2.19722457733622, 1.09861228866811, 2.70805020110221, 2.83321334405622, 0, 1.6094379124341, 0, 0, 0, 0, 2.63905732961526, 0.693147180559945, 2.30258509299405, 0, 0, 1.6094379124341, 0, 0, 0, 2.70805020110221, 2.30258509299405, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 1.09861228866811, 2.77258872223978, 0, 0, 2.07944154167984, 2.63905732961526, 0, 0, 2.19722457733622, 2.63905732961526, 2.63905732961526, 0, 2.07944154167984, 0, 0, 0, 2.77258872223978, 2.484906649788, 2.484906649788, 1.79175946922805, 0, 0, 0, 0, 0, 2.07944154167984, 0, 1.94591014905531, 0, 0, 0, 1.6094379124341, 0, 2.70805020110221, 2.07944154167984, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.19722457733622, 1.6094379124341, 2.07944154167984, 2.89037175789616, 0, 0, 1.09861228866811, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.56494935746154, 2.07944154167984, 2.63905732961526, 0, 2.77258872223978, 0, 0, 2.77258872223978, 2.70805020110221, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 2.19722457733622, 1.09861228866811, 2.63905732961526, 1.09861228866811, 1.94591014905531, 2.56494935746154, 2.07944154167984, 0, 2.39789527279837, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 0, 2.30258509299405, 2.19722457733622, 2.77258872223978, 2.39789527279837, 0, 0, 0, 1.6094379124341, 2.70805020110221, 0, 0, 2.39789527279837, 0, 2.63905732961526, 2.77258872223978, 2.39789527279837, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 1.94591014905531, 0, 1.09861228866811, 2.63905732961526, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 0, 0, 0, 1.09861228866811, 2.484906649788, 0, 2.63905732961526, 2.30258509299405, 0, 2.484906649788, 0, 0, 2.56494935746154, 0, 0, 2.07944154167984, 2.56494935746154, 0, 2.39789527279837, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 0, 0, 2.77258872223978, 0, 2.77258872223978, 2.77258872223978, 2.484906649788, 2.19722457733622, 2.30258509299405, 2.99573227355399, 2.70805020110221, 2.99573227355399, 2.99573227355399, 1.09861228866811, 2.70805020110221, 2.99573227355399, 2.99573227355399, 2.07944154167984, 2.94443897916644, 2.30258509299405, 0, 2.94443897916644, 2.70805020110221, 2.07944154167984, 1.79175946922805, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 2.70805020110221, 0, 2.56494935746154, 2.56494935746154, 0, 0, 2.484906649788, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.70805020110221, 2.56494935746154, 4.44753141102122, 4.99845159291209, 0, 0, 5.34401590408034, 0, 0, 0, 0, 0, 4.11526308367284, 0, 4.83101957587157, 0, 5.35483227176722, 0, 4.64828823133551, 5.67983273376747, 0, 0, 4.06161134317253, 4.50275270048942, 5.68289293193941, 0, 0, 5.08026790650122, 4.75687943510011, 4.01887317684174, 4.74803628912347, 5.5984431480882, 4.66942619676803, 4.76726706436959, 5.67983273376747, 0, 0, 5.33390925673613, 3.65988508193371, 0, 0, 5.1108560844243, 0, 3.08840424440941, 0, 5.10086345089318, 5.18708532757688, 0, 4.50569057276674, 4.66942619676803, 5.56586716958881, 0, 0, 4.76247163597859, 0, 0, 5.24140438986225, 0, 0, 0, 5.50841605100119, 5.29004513139035, 0, 4.99845159291209, 6.21951483913015, 4.99845159291209, 0, 0, 0, 4.8865409459131, 0, 5.53467284838857, 4.22725649496332, 4.56707347569167, 0, 0, 0, 4.62434881411479, 4.22725649496332, 0, 0, 0, 0, 0, 0, 0, 0, 4.62434881411479, 0, 5.67983273376747, 4.49267234579165, 0, 0, 0, 6.21951483913015, 0, 0, 4.78260745120908, 0, 4.42964280172089, 5.61931853978413, 0, 4.29125193071298, 0, 5.22140943155787, 4.33926365795236, 0, 0, 0, 0, 0, 4.66238644547969, 4.5446052005862, 0, 4.34743225143192, 5.906322239173, 5.19334452699367, 0, 0, 0, 7.3322796082818, 0, 5.11144100764418, 0, 0, 0, 0, 5.50841605100119, 0, 5.19334452699367, 3.08840424440941, 5.44222585146946, 0, 4.70499357965332, 0, 0, 0, 4.74803628912347, 0, 5.25281527478751, 5.74780111248537, 0, 4.7055183345893, 0, 0, 4.07165458324898, 0, 4.63886620569823, 5.21276807235686, 0, 4.77754893914646, 0, 5.23072064152801, 4.86745621720887, 0, 4.46879251920029, 5.04721600106418, 0, 0, 4.39100983020327, 0, 5.53003753299194, 0, 0, 0, 4.33926365795236, 4.56305517742098, 0, 5.65878431143908, 0, 0, 0, 4.64828823133551, 0, 0, 5.12413202499285, 0, 0, 0, 4.10664589052559, 3.6491943511463, 0, 0, 0, 4.97522587879142, 0, 0, 0, 0, 4.07165458324898, 4.77566254812319, 0, 0, 0, 0, 4.21967083832428, 0, 5.09528000964737, 5.35841132059817, 5.10707237571521, 4.33293999616685, 0, 5.14370675653711, 0, 4.68642392575495, 4.42573704905238, 4.76497471508772, 0, 0, 5.1359251643686, 0, 0, 0, 4.07165458324898, 0, 0, 0, 4.52347712814066, 0, 0, 5.51827119446648, 5.47350720409147, 5.31175934030434, 5.50841605100119, 5.47350720409147, 0, 5.23398072166647, 5.1570174138768, 5.07954797083464, 0, 0, 0, 4.07236669574765, 0, 0, 0, 5.50841605100119, 4.7990672081384, 0, 0, 5.24140438986225, 0, 5.24140438986225, 0, 0, 5.15612886274539, 0, 0, 0, 4.94574926210349, 0, 0, 4.884846781979, 4.7805865552905, 0, 0, 0, 0, 0, 0, 0, 0, 4.5235034137663, 0, 0, 0, 0, 4.75529028914856, 0, 0, 0, 0, 3.58475184409779, 0, 0, 0, 5.12560202092812, 0, 0, 0, 5.25776147359819, 0, 0, 4.03888156996801, 3.88490743924096, 0, 0, 0, 0, 0, 5.17655200562978, 4.83387324388568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.15642432047414, 0, 5.21472477803685, 3.34706178165003, 0, 4.80127633477391, 0, 0, 0, 0, 4.2045560017963, 4.04915429978765, 0, 0, 0, 0, 0, 5.67983273376747, 5.160057914294, 0, 0, 0, 0, 5.30590116636104, 0, 0, 0, 4.04892584252096, 0, 4.85914167699424, 0, 4.64277865104544, 4.43066374482382, 4.15836761122694, 0, 5.36774651080398, 0, 0, 0, 0, 4.75687943510011, 0, 4.69825600766589, 3.39084573952066, 0, 4.89676443793737, 0, 3.08840424440941, 4.22031527522809, 0, 0, 0, 5.24140438986225, 0, 4.62186501905693, 0, 3.60726976753607, 0, 0, 4.27424178838274, 0, 4.74043491710974, 5.12194352974463, 0, 4.49716217235633, 0, 0, 0, 0, 0, 0, 0, 0, 5.19334452699367, 0, 0, 0, 0, 5.35423454179863, 0, 0, 0, 4.77664916956399, 3.61595654505816, 0, 4.51490180910382, 5.36772763321859, 5.11610741471868, 3.08475184409779, 0, 0, 0, 0, 4.32728815974203, 0, 0, 4.70912459505171, 0, 0, 0, 0, 4.24690799663051, 0, 4.93880209277867, 0, 3.3457944191942, 4.66795741887588, 0, 4.77699595496913, 0, 0, 0, 0, 0, 0, 0, 4.58288705273542, 0, 5.24140438986225, 5.07203881163412, 0, 0, 0, 5.7132620437642, 4.40213534628126, 4.07165458324898, 0, 0, 3.88593701386777, 0, 0, 6.27746301373154, 0, 4.04738859925053, 0, 5.79838345525049, 4.79010521948074, 0, 0, 4.42083205457769, 0, 0, 4.30993989352961, 0, 0, 4.1284816161703, 0, 0, 6.27298930057815, 5.52026700956404, 0, 5.25422570349852, 0, 0, 0, 0, 0, 0, 0, 0, 3.58475184409779, 0, 0, 4.83500073106508, 4.25827651245211, 3.80246268528895, 4.7577540885072, 0, 4.56290083463287, 0, 4.67625737716732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.00936730398217, 0, 4.20745955373977, 0, 4.02198640305586, 0, 0, 0, 4.5722974500528, 0, 4.33577569537108, 0, 0, 0, 0, 0, 0, 0, 4.59785873273209, 4.07165458324898, 0, 0, 4.69738315387539, 0, 0, 4.98376223164808, 0, 0, 0, 0, 0, 4.73474422528117, 0, 0, 3.7780510507458, 0, 0, 4.07165458324898, 4.84713376647489, 5.73745890024692, 0, 4.5446052005862, 0, 0, 0, 3.80796867697814, 0, 5.66540912546717, 4.95624608182629, 0, 4.86388479634919, 4.47191349494482, 0, 0, 0, 4.86926607540753, 0, 0, 3.88593701386777, 3.58475184409779, 0, 4.31167370817058, 5.36003743637899, 5.51283979854248, 0, 6.3072839060449, 0, 4.1290048107316, 0, 0, 0, 4.36391942896167, 0, 3.76988385024473, 0, 0, 4.89542911639381, 0, 4.99493658104678, 4.29324547337354, 0, 4.71485705975334, 4.85669186247291, 0, 4.49190483512985, 0, 4.25036883921282, 0, 0, 0, 4.20730692066768, 4.68585783885858, 5.32757781675594, 4.68986114974663, 0, 0, 5.27792648060271, 0, 4.83375037428789, 0, 4.94775605383375, 0, 3.71043861112521, 4.95746669387291, 0, 4.13946901623151, 4.84131809231602, 0, 0, 0, 0, 0, 5.84250940544768, 0, 0, 4.49867809138072, 4.29324547337354, 0, 0, 3.54527199062208, 5.60348909478433, 0, 0, 0, 5.07726252362091, 0, 0, 0, 4.29324547337354, 4.84237694862251, 0, 0, 0, 0, 0, 0, 5.22978387204385, 5.96198716869211, 0, 5.00016104895115, 4.22863684380868, 4.47674073560793, 0, 4.74133078672761, 0, 4.61425048429258, 4.9617331632071, 0, 4.33996288791152, 0, 4.16672299090338, 0, 5.93455413716264, 4.31716334970415, 0, 5.25667279345597, 0, 0, 4.63813573323897, 0, 0, 0, 0, 0, 0, 5.12023974854408, 4.85349527907786, 4.69981829554092, 0, 0, 4.29324547337354, 4.6348108564419, 0, 0, 3.96232013129067, 0, 3.52480227011357, 0, 4.24690799663051, 0, 4.53039313028758, 4.20225407987786, 5.36774651080398, 4.60690480556876, 6.01747157111498, 4.25114880722415, 0, 5.43999342872825, 0, 0, 0, 0, 0, 4.84367768664702, 4.95451233379668, 2.82202109961155, 3.76438600190667, 0, 4.26333578266713, 0, 4.6749120363765, 0, 4.55232531716673, 0, 0, 4.6097948978766, 6.10988718694535, 5.57041513154971, 0, 4.79822377643646, 5.10554884718783, 5.04484623147216, 5.35841132059817, 4.53478694772284, 5.28494779936496, 5.01693219668386, 3.70314434961049, 0, 4.4653514153011, 0, 0, 0, 0, 0, 5.264619368718, 4.51432204818341, 3.83550825442583, 4.56009698259212, 0, 0, 0, 4.5984015777211, 4.4653514153011, 4.59748459444611, 3.21586929775511, 0, 4.29324547337354, 6.08493100169216, 0, 0, 3.84946149531937, 4.86925656045363, 4.55230873121526, 0, 0, 5.14335698681643, 0, 0, 4.54083727413122, 0, 0, 0, 5.05977518849827, 0, 0, 4.58595099106456, 4.69744179171063, 0, 5.30242614721084, 5.5643803790549, 4.38050462468806, 0, 0, 6.44014395380952, 0, 0, 0, 0, 0, 5.26474315849566, 0, 4.85584599927583, 3.92264183975476, 3.08840424440941, 5.60633675704464, 0, 0, 0, 3.89200993141832, 0, 0, 0, 0, 0, 5.53151437251067, 0, 0, 4.61930324147174, 0, 0, 3.41653801180655, 0, 0, 0, 0, 4.5446052005862, 4.49867809138072, 6.04431126744461, 0, 0, 4.39122702881706, 0, 0, 0, 0, 0, 0, 0, 0, 4.38336348054014, 0, 0, 0, 4.62268555040365, 5.32924965005265, 0, 0, 0, 4.03888156996801, 5.35841132059817, 0, 0, 0, 4.29324547337354, 0, 0, 0, 0, 5.62354024481241, 3.92264183975476, 0, 0, 8.04875931191986, 4.08670872345333, 0, 0, 0, 6.01011624405031, 4.50011610270839, 0, 5.62872388627618, 0, 0, 0, 5.09068143889225, 0, 4.29324547337354, 0, 4.14849703518256, 4.14696038383968, 4.5446052005862, 0, 0, 0, 0, 0, 0, 0, 4.25970507598547, 4.90917323454674, 4.7725810983862, 0, 0, 0, 4.07165458324898, 4.91088091003882, 0, 5.20967687299793, 5.65126354304392, 0, 0, 5.43952778610345, 0, 0, 0, 4.94642004585972, 3.41653801180655, 4.78163179205947, 5.02383185250756, 0, 5.30895000768515, 0, 5.24043094880977, 0, 0, 5.40426070147056, 4.43887005753346, 5.55797323938056, 0, 4.29125193071298, 4.98412242854925, 5.78214134368246, 5.08688827549532, 7.25889062190924, 4.60620768805788, 0, 0, 0, 3.92264183975476, 0, 5.2258021890608, 0, 4.22441594942276, 4.9058349053593, 0, 0, 4.18981842087419, 5.22402374327072, 4.41035009595542, 0, 4.98376223164808, 0, 5.56610035013788, 4.04443235322857, 0, 0, 0, 6.4637968111987, 0, 5.34618875853139, 0, 4.84713376647489, 0, 0, 5.50046544695822, 0, 0, 0, 4.74474897925142, 5.51405308292251, 0, 4.74543014475021, 4.99254966308555, 0, 0, 4.62305793795974, 0, 5.01782269537767, 0, 0, 0, 4.55699828201733, 6.37180978666142, 0, 0, 4.29324547337354, 6.434963516161, 5.65207737549816, 0, 0, 5.40519841661383, 4.5446052005862, 0, 0, 0, 5.36186261430798, 0, 6.67594033620312, 4.38050462468806, 0, 0, 0, 0, 4.81913040789207, 4.09928418046554, 4.88215787709743, 6.21951483913015, 0, 0, 4.48481037272562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.5446052005862, 3.58475184409779, 5.29603230413446, 4.21701689218848, 4.17660530186524, 5.21400702776104, 3.42732561175211, 0, 3.6491943511463, 0, 0, 0, 0, 4.55542168930457, 0, 0, 5.014964762629, 5.2375538215128, 0, 0, 0, 4.54866970987183, 5.76424874767203, 0, 0, 0, 0, 0, 5.28039701851747, 0, 5.41993634393776, 0, 4.5446052005862, 4.74133078672761, 4.75687943510011, 0, 0, 0, 0, 0, 4.39955114326686, 0, 0, 5.27358834023212, 4.5669756529141, 4.95537689737201, 0, 4.9759457525241, 3.89326535001852, 0, 5.31462430211876, 4.72202319875715, 4.27306291407555, 0, 5.82836614683824, 0, 4.43250406853704, 5.38695112076559, 4.16511779279315, 0, 0, 0, 3.89700334539345, 3.67856534568568, 0, 4.5446052005862, 0, 4.62878578067426, 0, 0, 6.44794238133503, 0, 0, 0, 0, 4.93466699780743, 0, 3.72334667652189, 0, 3.92264183975476, 4.96181262391936, 0, 4.33926365795236, 4.01190174316327, 6.42127270657952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.06292492954673, 5.44516689179994, 0, 0, 3.21586929775511, 0, 0, 5.57428379256295, 0, 0, 4.48523325714668, 0, 4.24684542568535, 4.74133078672761, 3.94454022319701, 4.5446052005862, 3.91079019238764, 0, 0, 4.68609415615235, 3.94454022319701, 0, 0, 3.84265876348639, 0, 0, 5.13642642320225, 4.69024920091807, 4.5446052005862, 4.48523325714668, 3.83478864566511, 0, 3.42732561175211, 4.42767817273019, 4.62533168329173, 0, 3.92979780550809, 3.74863558735084, 0, 0, 0, 5.66443431573979, 0, 5.34379090910842, 4.07165458324898, 6.34476620622866, 0, 0, 0, 4.35585115500986, 0, 5.78390744816618, 4.4508303130615, 0, 4.59785873273209, 4.74043491710974, 0, 5.24973641061837, 3.89648682817166, 6.82496732832287, 5.42984297823385, 3.58475184409779, 0, 4.94654352851211, 0, 5.39249236749112, 0, 0, 0, 4.24119248281048, 4.84039356810966, 5.21095252926159, 4.39926018075244, 4.07165458324898, 4.8661783604112, 4.84713376647489, 0, 0, 5.31551469081168, 5.6401157843335, 0, 4.15254156276249, 0, 5.08076026418272, 3.87482237405972, 0, 0, 0, 3.41331239679354, 0, 0, 0, 0, 0, 4.96642248389134, 0, 5.51827119446648, 0, 6.21951483913015, 3.99180551178679, 6.02160973858489, 0, 3.33408199411394, 0, 6.27746301373154, 0, 0, 0, 5.51934486271032, 0, 3.52893076149451, 4.40490312214513, 0, 4.5446052005862, 4.84392245566624, 0, 4.87263832584576, 0, 0, 6.59943928500523, 0, 0, 0, 0, 0, 0, 5.35093802844997, 0, 0, 0, 0, 5.24140438986225, 4.21564624261625, 0, 4.5446052005862, 0, 0, 3.8393224031938, 4.67625737716732, 5.70906699367986, 0, 0, 0, 0, 5.79140843890437, 4.03395580980777, 0, 0, 0, 4.22423247707574, 0, 4.41310323524655, 0, 0, 0, 4.31511637214836, 5.13607245694666, 6.44266670765523, 3.42845906532466, 5.6201472650483, 0, 3.5968288101014, 0, 4.41035009595542, 0, 0, 4.5446052005862, 0, 0, 3.91079019238764, 0, 0, 0, 0, 0, 4.67366930612497, 0, 4.5446052005862, 0, 4.6236345630258, 0, 0, 0, 3.74056545101946, 0, 0, 5.1108560844243, 0, 0, 0, 0, 0, 0, 0, 5.0397861375605, 4.65666750266804, 3.88593701386777, 0, 5.11912932989559, 0, 0, 0, 4.76023122194334, 0, 0, 0, 4.42332641725864, 0, 5.13979192553583, 0, 5.1108560844243, 0, 5.31551469081168, 0, 0, 4.07165458324898, 0, 0, 0, 5.22394729750243, 0, 0, 5.35245770677844, 0, 0, 0, 0, 0, 0, 5.15612886274539, 0, 5.45980510621828, 0, 4.5446052005862, 0, 0, 4.52271553196258, 4.84713376647489, 4.72546025335497, 4.69744179171063, 4.44850267173171, 0, 0, 3.93024478037421, 4.25970507598547, 0, 4.81234830694186, 0, 3.92264183975476, 0, 0, 3.65953538641132, 0, 4.25362665807366, 5.55169762085876, 6.14943089913506, 0, 4.21150224223926, 3.41653801180655, 0, 4.269286190978, 0, 4.50011610270839, 5.27468260273865, 4.49408709756309, 0, 0, 4.49136758829493, 0, 0, 4.54327618918066, 0, 4.5446052005862, 3.58475184409779, 0, 0, 4.50446392083745, 0, 5.79140843890437, 3.93665251167916, 3.28350214332539, 0, 4.89051044980043, 0, 0, 0, 0, 0, 3.78321705817229, 0, 4.48003799699768, 0, 4.89306075417069, 3.47912676313968, 0, 5.07141385368124, 5.46717499293355, 0, 0, 0, 4.5446052005862, 4.65077231506732, 5.15612886274539, 0, 0, 0, 0, 3.91406238230311, 0, 5.86372156207979, 5.68299659533049, 0, 0, 5.15612886274539, 0, 4.68832640390861, 5.66992544137339, 0, 0, 0, 0, 0, 6.06384931002383, 0, 6.28322456555688, 0, 0, 0, 0, 0, 4.79107576960346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.86368999783554, 0, 0, 0, 3.58475184409779, 0, 4.82055439233373, 0, 0, 0, 0, 4.85421168778822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.47588882823574, 0, 4.78252501167965, 3.41653801180655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.20681227879862, 4.50651879329543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.04924321801926, 4.58466482716377, 0, 0, 0, 0, 0, 0, 0, 5.3561138783391, 4.85243399397363, 0, 3.81453902658666, 0, 0, 0, 0, 5.15222555654165, 0, 0, 0, 0, 0, 0, 0, 5.34792062542911, 0, 0, 0, 0, 0, 0, 0, 4.50079441010229, 0, 0, 0, 5.36395188348553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 0, 5.08314654283621, 4.74543014475021, 0, 0, 4.97832840314828, 0, 3.87450136931947, 0, 0, 0, 4.54914267404179, 0, 0, 0, 0, 0, 0, 0, 0, 5.16931459555937, 0, 0, 0, 4.36809005278833, 5.24140438986225, 0, 4.86175317682268, 0, 0, 0, 5.70255144824812, 0, 0, 0, 0, 0, 4.61167819487854, 0, 0, 0, 0, 3.97734686199437, 0, 0, 0, 4.46647508659293, 5.5874976302558, 0, 0, 0, 0, 0, 0, 4.3915051987931, 4.02198640305586, 0, 5.32200808519659, 0, 4.75591633296212, 0, 0, 0, 5.41089341195691, 0, 0, 0, 0, 4.07311695443637, 0, 0, 0, 4.58808556207911, 3.67713300566883, 4.17612848399738, 4.38036055806098, 0, 0, 0, 0, 0, 4.2477296409552, 0, 7.04875931191986, 0, 5.28020614597096, 6.27077143982824, 0, 0, 0, 5.06615328350412, 0, 0, 0, 0, 0, 5.64492710128744, 5.72856453189238, 5.31297081939636, 5.04502603031584, 0, 5.92027610321489, 0, 0, 0, 0, 4.5799001110863, 5.72683121703249, 4.33396013310961, 0, 0, 5.19107953392195, 0, 0, 0, 4.33368887409783, 5.76914879061123, 0, 0, 0, 0, 0, 4.27162014924768, 0, 0, 0, 0, 4.60460897032093, 5.72856453189238, 6.91724210900296, 4.9313620593995, 0, 0, 4.55572874074827, 5.31937215100257, 0, 0, 4.72816878340634, 4.5799001110863, 4.33386566070536, 0, 4.92776136173484, 0, 0, 0, 4.9313620593995, 4.9274331379247, 4.73921206280591, 5.61090153519716, 0, 0, 0, 0, 0, 4.55572874074827, 0, 4.63155812754724, 0, 0, 0, 5.58657768120971, 0, 4.82043203395629, 5.3602485382648, 0, 0, 0, 5.41252929660805, 5.80115125551186, 4.86476603809665, 5.30986136398136, 5.83727224806896, 5.1910832537831, 0, 0, 4.38707427738922, 4.57510137993917, 5.80115125551186, 5.80115125551186, 0, 5.06204936101895, 0, 0, 0, 0, 4.8077855259382, 0, 0, 0, 4.79447530907979, 0, 0, 0, 5.7805172508112, 5.3602485382648, 5.80115125551186, 0, 4.80427798454113, 0, 0, 4.39904481168002, 4.80892505204752, 0, 0, 4.88127948385489, 5.19197800428063, 0, 0, 5.64492710128744, 5.35950350029299, 5.80115125551186, 6.42176467880446, 6.28753733275244, 5.08597058872868, 5.3602485382648, 0, 5.12234337036363, 5.80115125551186, 0, 5.37638184997943, 4.57618733287019, 0, 4.30448167573554, 0, 4.93669876082397, 5.64492710128744, 4.9313620593995, 4.7467434878128, 0, 0, 0, 3.73773926089931, 4.49774775798938, 0, 0, 4.79376804206744, 0, 5.78113591907037, 4.6353742308296, 3.58637114430137, 5.20551093132143, 4.91958381391295, 0, 5.563650238485, 0, 0, 5.42463714963031, 0, 5.72856453189238, 4.38747801900603, 0, 0, 0, 0, 5.12416331333245, 5.47184827462, 0, 0, 0, 3.91079019238764, 4.77713990713878, 0, 4.30619251895508, 7.25770231386211, 0, 6.8231741340509, 0, 0, 4.81535683426321, 0, 0, 5.29097965268756, 4.49647981565392, 0, 4.63041404799857, 0, 0, 5.54751456787139, 0, 4.86554474143117, 0, 0, 0, 0, 5.01643661258015, 6.04937585798612, 0, 4.22567775799672, 0, 5.54548414340213, 5.14872468151357, 0, 0, 3.93008266118622, 0, 3.93008266118622, 3.93008266118622, 4.71626555531817, 5.64492710128744, 5.3046285040396, 4.19322327372815, 4.43168054139015, 4.19322327372815, 4.44653969775699, 6.70299222946026, 4.43168054139015, 4.19322327372815, 4.44653969775699, 5.90043791490013, 4.32467547269038, 5.95756843540382, 0, 4.32467547269038, 4.43168054139015, 4.30852861749189, 4.91276597929673, 0, 3.98383572579179, 0, 0, 0, 0, 0, 0, 0, 5.0976405203171, 0, 0, 4.819577900837, 0, 0, 4.93550764350809, 4.28739733718854, 4.42310634753136, 4.55298892193113, 0, 4.37163861675582, 4.90916251231002, 0, 0, 4.3264980952709, 4.1210240830879, 4.71946288663214, 4.68026528939617, 0, 4.07943249724407, 5.42053219602931, 4.47023873528705, 5.35075151128298, 0, 0, 5.6343520367362, 0, 0, 0, 0, 0, 4.45374103702104, 0, 5.32451512184451, 0, 5.5434760889105, 0, 5.33027299411247, 6.01283187053194, 0, 0, 4.71688403132025, 5.44465284282755, 5.77536926787927, 0, 0, 5.60447738663069, 4.841015176395, 4.05819432772927, 4.83843188134675, 5.72089030982371, 4.96715230869194, 5.50803101680629, 6.01283187053194, 0, 0, 5.75707815623697, 3.89682328436966, 0, 0, 5.76691919422696, 0, 3.09725524527614, 0, 5.75692812298689, 5.41246579638706, 0, 4.65602993211273, 4.96715230869194, 5.56586716958881, 0, 0, 5.0460270609084, 0, 0, 5.24140438986225, 0, 0, 0, 5.65917883803577, 5.49932454095753, 0, 5.35075151128298, 6.4085059170199, 5.35075151128298, 0, 0, 0, 5.64685282012207, 0, 5.82638765873269, 4.33092775741833, 5.07183302984799, 0, 0, 0, 5.33426726720189, 4.33092775741833, 0, 0, 0, 0, 0, 0, 0, 0, 5.33426726720189, 0, 6.01283187053194, 4.61033878759199, 0, 0, 0, 6.4085059170199, 0, 0, 5.26148526435787, 0, 4.73518225614663, 6.77189397463612, 0, 4.33309365234227, 0, 5.60195869647768, 4.39306520312915, 0, 0, 0, 0, 0, 5.28987653716311, 4.70797731248539, 0, 4.46440605128787, 6.10112255733376, 5.29854930064539, 0, 0, 0, 7.3322796082818, 0, 5.71935101333561, 0, 0, 0, 0, 5.65917883803577, 0, 5.29854930064539, 3.09725524527614, 5.98602647121402, 0, 4.87994119068874, 0, 0, 0, 4.83843188134675, 0, 6.04926690378393, 5.77761706213867, 0, 4.75419843168543, 0, 0, 4.12545612842576, 0, 5.37331133484265, 6.06607402273851, 0, 4.90199415321789, 0, 5.44663275495942, 4.97337652407054, 0, 4.70683990433408, 6.09030310584464, 0, 0, 4.59267771146204, 0, 5.74472828954025, 0, 0, 0, 4.39306520312915, 4.9594466010235, 0, 5.65878431143908, 0, 0, 0, 5.33027299411247, 0, 0, 5.15405393436842, 0, 0, 0, 4.79271867779565, 3.65509501839079, 0, 0, 0, 5.30656133960038, 0, 0, 0, 0, 4.12545612842576, 5.16544708906526, 0, 0, 0, 0, 4.35830690668824, 0, 5.11007770066441, 5.68068903261977, 5.38472325370722, 4.45465512713274, 0, 6.16295295944043, 0, 4.82105667516848, 4.54936121111849, 4.8473450755123, 0, 0, 5.20003852724125, 0, 0, 0, 4.12545612842576, 0, 0, 0, 4.80602340533701, 0, 0, 5.57358026729663, 5.48312574104513, 5.66149658008891, 5.65917883803577, 5.48312574104513, 0, 5.23988138891096, 5.26792998492256, 6.56152621328148, 0, 0, 0, 4.1952839825337, 0, 0, 0, 5.65917883803577, 5.03303423782249, 0, 0, 5.24140438986225, 0, 5.24140438986225, 0, 0, 5.48414981820747, 0, 0, 0, 5.06004256590949, 0, 0, 5.57392840480265, 5.14709844647414, 0, 0, 0, 0, 0, 0, 0, 0, 4.74622331562497, 0, 0, 0, 0, 5.00703260543813, 0, 0, 0, 0, 3.60832473391076, 0, 0, 0, 5.56616750491603, 0, 0, 0, 5.29670792683, 0, 0, 4.07901397385709, 3.93616125493352, 0, 0, 0, 0, 0, 5.48414550467549, 4.99271395081408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.76871268109462, 0, 5.48749686027756, 3.41372504618776, 0, 4.96285090245367, 0, 0, 0, 0, 4.46638197001762, 4.08570098292673, 0, 0, 0, 0, 0, 6.01283187053194, 5.54550201403224, 0, 0, 0, 0, 5.37514739622563, 0, 0, 0, 4.13198736389855, 0, 4.91507097210121, 0, 4.70065323315218, 4.50465704764796, 4.18161179637905, 0, 5.76551299474612, 0, 0, 0, 0, 4.841015176395, 0, 5.00122572037286, 3.39527123995403, 0, 4.99916881046045, 0, 3.09725524527614, 4.30397566391642, 0, 0, 0, 5.24140438986225, 0, 4.82450059374518, 0, 3.66185287494411, 0, 0, 4.59419872378161, 0, 5.28991528237199, 5.24591021914727, 0, 4.55646570202336, 0, 0, 0, 0, 0, 0, 0, 0, 5.29854930064539, 0, 0, 0, 0, 5.97468587107694, 0, 0, 0, 5.17281500572016, 4.23359731002858, 0, 4.70110808831789, 5.4481418413938, 5.45563475931033, 3.49819167379673, 0, 0, 0, 0, 4.52897666335624, 0, 0, 4.87185152412934, 0, 0, 0, 0, 4.44023361588987, 0, 5.72573281144697, 0, 3.37577274353353, 4.93470358744368, 0, 5.22487647460862, 0, 0, 0, 0, 0, 0, 0, 5.10041650829154, 0, 5.24140438986225, 5.17586727323926, 0, 0, 0, 6.33368723661989, 4.79502644500574, 4.12545612842576, 0, 0, 3.95129473852242, 0, 0, 6.40936034411101, 0, 4.11976254800108, 0, 6.01420102457481, 4.92778612829905, 0, 0, 4.56377011384001, 0, 0, 4.58742555968595, 0, 0, 4.47115871287075, 0, 0, 6.3157859630797, 6.05276138315245, 0, 5.65748539315244, 0, 0, 0, 0, 0, 0, 0, 0, 3.60832473391076, 0, 0, 5.11133965824451, 4.51310522772913, 3.89536124354662, 5.06103035286723, 0, 4.74935409866161, 0, 4.81917803006731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.35834146243248, 0, 4.41243900771197, 0, 4.21212244361495, 0, 0, 0, 4.79571442633969, 0, 4.78376213375855, 0, 0, 0, 0, 0, 0, 0, 4.66243764960628, 4.12545612842576, 0, 0, 5.01762473297417, 0, 0, 5.75151861611835, 0, 0, 0, 0, 0, 4.73474422528117, 0, 0, 3.86874107589107, 0, 0, 4.12545612842576, 5.08886396293006, 5.80402577087784, 0, 4.70797731248539, 0, 0, 0, 3.82093823325002, 0, 5.93115712317424, 5.32792082239033, 0, 4.91648718317505, 4.6286839565979, 0, 0, 0, 5.03580666251931, 0, 0, 3.95129473852242, 3.60832473391076, 0, 4.47372623083586, 5.66396960914285, 5.52342408043357, 0, 6.3072839060449, 0, 4.39263629341855, 0, 0, 0, 4.5461543147591, 0, 4.00929570759838, 0, 0, 4.8989695167405, 0, 5.01302081520985, 4.37172777575117, 0, 5.44756048349279, 5.16789386079396, 0, 4.62735418855057, 0, 4.44079516905636, 0, 0, 0, 4.28046241025766, 5.01703737427696, 5.6353715526086, 5.0796161097687, 0, 0, 5.65024767075424, 0, 5.08890453770741, 0, 5.32401726275344, 0, 3.84706081423485, 5.18912785855176, 0, 4.21299645646799, 5.71469117325511, 0, 0, 0, 0, 0, 6.17772832844847, 0, 0, 4.53867783270312, 4.37172777575117, 0, 0, 3.5532198105541, 6.9402822383012, 0, 0, 0, 5.9217945465382, 0, 0, 0, 4.37172777575117, 4.9069454539305, 0, 0, 0, 0, 0, 0, 5.30241986053923, 6.33869899388184, 0, 5.39976238009773, 4.38644400428626, 4.76291350811205, 0, 4.77077456462009, 0, 4.91647000514191, 5.63299407008989, 0, 4.76442138195918, 0, 4.19149891687219, 0, 6.18028139521804, 4.75957378522249, 0, 5.37499577870791, 0, 0, 5.19218418054663, 0, 0, 0, 0, 0, 0, 5.54651041134472, 4.99310443180552, 4.83230580737543, 0, 0, 4.37172777575117, 5.00624801055916, 0, 0, 4.01551444343638, 0, 3.8004288232462, 0, 4.44023361588987, 0, 5.24062714859501, 4.25541452000165, 5.76551299474612, 4.67254124106144, 6.0601480272341, 4.26519284461117, 0, 6.07837140863533, 0, 0, 0, 0, 0, 5.01508157588564, 5.38839219122816, 2.98867926095586, 3.80230215365203, 0, 4.63740328603195, 0, 4.83174294568795, 0, 4.84593075750505, 0, 0, 4.7987445343459, 6.10988718694535, 5.88609925677352, 0, 4.92905503971803, 5.1291357545967, 5.33210621460776, 5.68068903261977, 4.75421003053851, 5.76484379748952, 5.89659709112448, 3.97408488565484, 0, 4.54225251749011, 0, 0, 0, 0, 0, 5.44867547868712, 4.58792163582769, 4.45519854107159, 5.40296101260371, 0, 0, 0, 5.23282888113204, 4.54225251749011, 4.99810936328733, 3.53148361871027, 0, 4.37172777575117, 7.20232147520751, 0, 0, 3.88094293727598, 5.04634949654422, 4.85193539538581, 0, 0, 5.38302151981881, 0, 0, 4.84708972120952, 0, 0, 0, 5.18172777455107, 0, 0, 5.02338495590354, 4.97314182720626, 0, 5.36691203738778, 6.17926458658832, 4.6032812436626, 0, 0, 6.44014395380952, 0, 0, 0, 0, 0, 5.66155241911599, 0, 5.07481428379687, 3.96913521083557, 3.09725524527614, 5.92841795796096, 0, 0, 0, 3.9569029957827, 0, 0, 0, 0, 0, 5.92233122991613, 0, 0, 4.65209832080062, 0, 0, 3.42538901267328, 0, 0, 0, 0, 4.70797731248539, 4.53867783270312, 6.31090336407015, 0, 0, 4.49344351296306, 0, 0, 0, 0, 0, 0, 0, 0, 4.38857156946871, 0, 0, 0, 4.85720037051412, 5.40628022389323, 0, 0, 0, 4.07901397385709, 5.68068903261977, 0, 0, 0, 4.37172777575117, 0, 0, 0, 0, 6.07110364540763, 3.96913521083557, 0, 0, 8.56333248474961, 4.13320209453414, 0, 0, 0, 6.25236028863335, 4.5753207831737, 0, 5.80169584696238, 0, 0, 0, 5.28179953479194, 0, 4.37172777575117, 0, 4.14997220199368, 4.33948681690765, 4.70797731248539, 0, 0, 0, 0, 0, 0, 0, 4.25970507598547, 4.92758031518272, 4.93156925448272, 0, 0, 0, 4.12545612842576, 5.01751268930306, 0, 5.39546189912394, 5.65898556774226, 0, 0, 5.89053734100155, 0, 0, 0, 5.66831731810165, 3.42538901267328, 4.88793557667453, 5.12863713949509, 0, 5.40976693826997, 0, 5.31255908150589, 0, 0, 5.40426070147056, 4.5422941873489, 6.15006231982048, 0, 4.33309365234227, 5.06580665006672, 6.21338130580672, 5.32882049337723, 7.48491459028012, 4.74338227484255, 0, 0, 0, 3.96913521083557, 0, 5.30591546296316, 0, 4.99239347343115, 5.1380247908972, 0, 0, 4.31100039129807, 5.5248096035857, 4.54919797955033, 0, 5.75151861611835, 0, 5.89429544408051, 4.11328195095659, 0, 0, 0, 6.4637968111987, 0, 5.759617153036, 0, 5.08886396293006, 0, 0, 5.56001629968898, 0, 0, 0, 5.04957504841723, 6.01396912268476, 0, 5.0795093335461, 5.21164799965415, 0, 0, 4.73835358960735, 0, 5.63356673843318, 0, 0, 0, 4.77947884436236, 6.38417379966649, 0, 0, 4.37172777575117, 6.53611072336905, 5.70970640406628, 0, 0, 5.45984600559831, 4.70797731248539, 0, 0, 0, 5.66053003067177, 0, 6.78844856636189, 4.6032812436626, 0, 0, 0, 0, 5.03537990117429, 4.11830704728802, 5.00602244294408, 6.4085059170199, 0, 0, 4.60651061546597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.70797731248539, 3.60832473391076, 5.76154401639335, 4.27793745933681, 4.39439226054663, 5.25017208436427, 3.45524996202877, 0, 3.65509501839079, 0, 0, 0, 0, 5.24677064579828, 0, 0, 5.2340630991976, 5.43187466758889, 0, 0, 0, 4.72170868076293, 5.78648010985107, 0, 0, 0, 0, 0, 5.4880782540335, 0, 5.76456705787329, 0, 4.70797731248539, 4.77077456462009, 4.841015176395, 0, 0, 0, 0, 0, 4.5212513860072, 0, 0, 5.2830036814102, 4.755199365565, 5.04374466898015, 0, 5.14934061466492, 4.00504428048212, 0, 5.63828357307054, 4.83375744666124, 4.44268113711068, 0, 5.85876676552725, 0, 4.6625202892475, 5.60282829854662, 4.39769006785411, 0, 0, 0, 4.02330675409165, 3.69328723463192, 0, 4.70797731248539, 0, 4.70088941787475, 0, 0, 6.5972401768634, 0, 0, 0, 0, 5.00448478635041, 0, 4.20025154332949, 0, 3.96913521083557, 5.43980271704082, 0, 4.39306520312915, 4.04364205144183, 6.46159947881345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.23000829100607, 5.83574947081631, 0, 0, 3.53148361871027, 0, 0, 5.87382269094248, 0, 0, 4.76317930417855, 0, 4.45182138679726, 4.77077456462009, 3.95943321001123, 4.70797731248539, 3.91964119325437, 0, 0, 4.91295835862852, 3.95943321001123, 0, 0, 3.9945583727606, 0, 0, 5.51818483493403, 5.43720169207426, 4.70797731248539, 4.76317930417855, 3.84363964653184, 0, 3.45524996202877, 4.49769249551306, 4.78506663979837, 0, 3.98877788113614, 3.74863558735084, 0, 0, 0, 5.69425658902292, 0, 5.42434501910616, 4.12545612842576, 6.34815283918815, 0, 0, 0, 4.38585318662118, 0, 6.12664661113485, 5.25400741500528, 0, 4.66243764960628, 5.28991528237199, 0, 5.3132574731509, 3.91868336469722, 7.02058462632098, 5.84086615101475, 3.60832473391076, 0, 5.0482983374706, 0, 5.54979946161498, 0, 0, 0, 4.26909284304059, 4.9016554789553, 5.38319730459238, 4.41643187636514, 4.12545612842576, 5.85921258011345, 5.08886396293006, 0, 0, 5.85458625075546, 5.70404502673787, 0, 4.19135697760183, 0, 5.34400343715075, 3.91260010440766, 0, 0, 0, 3.49664147746569, 0, 0, 0, 0, 0, 5.30450024590316, 0, 5.57358026729663, 0, 6.4085059170199, 4.0239425621259, 6.52835858629633, 0, 3.33850749454731, 0, 6.40936034411101, 0, 0, 0, 5.74295033626082, 0, 3.56390547322373, 4.40490312214513, 0, 4.70797731248539, 5.23820503400909, 0, 5.22015947491138, 0, 0, 6.68420139122128, 0, 0, 0, 0, 0, 0, 5.37309470532579, 0, 0, 0, 0, 5.24140438986225, 4.40005844316325, 0, 4.70797731248539, 0, 0, 3.92723752749359, 4.81917803006731, 6.03793423340244, 0, 0, 0, 0, 5.82639327749719, 4.1641222427235, 0, 0, 0, 4.54816510994007, 0, 4.50396869618306, 0, 0, 0, 4.48841506742005, 5.24208271671043, 6.54452980998457, 3.43435973256915, 5.89318383285956, 0, 3.6081828385757, 0, 4.54919797955033, 0, 0, 4.70797731248539, 0, 0, 3.91964119325437, 0, 0, 0, 0, 0, 5.20195080685883, 0, 4.70797731248539, 0, 4.73570225663244, 0, 0, 0, 3.77684008905211, 0, 0, 5.76691919422696, 0, 0, 0, 0, 0, 0, 0, 5.35760542474489, 5.43134497884026, 3.95129473852242, 0, 5.88688571436587, 0, 0, 0, 5.48880600435277, 0, 0, 0, 4.58127261800614, 0, 5.2432682866376, 0, 5.76691919422696, 0, 5.85458625075546, 0, 0, 4.17845593508545, 0, 0, 0, 5.32915207115415, 0, 0, 5.67439706159283, 0, 0, 0, 0, 0, 0, 5.48414981820747, 0, 5.45980510621828, 0, 4.70797731248539, 0, 0, 5.26825472679299, 5.08886396293006, 4.77812105375205, 4.97314182720626, 5.02461627268094, 0, 0, 4.87986871696614, 4.25970507598547, 0, 5.04380114925574, 0, 3.96913521083557, 0, 0, 3.76117759192783, 0, 4.29384575661762, 5.64448746911029, 6.19983936442748, 0, 4.25541391894885, 3.42538901267328, 0, 4.44894370843512, 0, 4.5753207831737, 5.79730383363085, 4.69161780331095, 0, 0, 5.27300130310585, 0, 0, 4.65990842952245, 0, 4.70797731248539, 3.60832473391076, 0, 0, 4.5089794314501, 0, 5.82639327749719, 3.97973596412231, 3.56912563841365, 0, 5.39454333294401, 0, 0, 0, 0, 0, 4.31295440326451, 0, 4.60603272438152, 0, 5.03326636143237, 3.48502743038416, 0, 5.13341897327881, 5.79836155253198, 0, 0, 0, 4.70797731248539, 4.76597454786299, 5.48414981820747, 0, 0, 0, 0, 4.1147740786264, 0, 5.89140780104357, 5.72067257535352, 0, 0, 5.48414981820747, 0, 5.06224998666835, 5.70760142139642, 0, 0, 0, 0, 0, 6.29537545475406, 0, 6.28322456555688, 0, 0, 0, 0, 0, 4.86499104079537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.06762901757681, 0, 0, 0, 3.60832473391076, 0, 5.57974701785545, 0, 0, 0, 0, 5.01248831051847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.70311688982858, 0, 4.7905501759008, 3.42538901267328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.42055352163528, 4.90048116201781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.12224181396152, 4.72247810373009, 0, 0, 0, 0, 0, 0, 0, 5.6041555529138, 4.90511322208062, 0, 3.8321237025774, 0, 0, 0, 0, 5.2902336355441, 0, 0, 0, 0, 0, 0, 0, 5.70168577560286, 0, 0, 0, 0, 0, 0, 0, 4.58238271712997, 0, 0, 0, 5.61728951257107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 0, 5.18111223181278, 5.0795093335461, 0, 0, 5.13995698613151, 0, 4.52388257400644, 0, 0, 0, 4.69341066687911, 0, 0, 0, 0, 0, 0, 0, 0, 5.32712175603695, 0, 0, 0, 4.56601253623096, 5.24140438986225, 0, 4.96690654975619, 0, 0, 0, 5.82766293014659, 0, 0, 0, 0, 0, 4.65902657336049, 0, 0, 0, 0, 4.00789727353636, 0, 0, 0, 4.58360457071026, 5.614605145218, 0, 0, 0, 0, 0, 0, 4.69961409468953, 4.21212244361495, 0, 5.55447993054684, 0, 5.06741811317643, 0, 0, 0, 5.6926359610661, 0, 0, 0, 0, 4.85475066924729, 0, 0, 0, 5.37078593035236, 3.77220102594837, 4.41011207444914, 4.44317393860099, 0, 0, 0, 0, 0, 4.27626074928957, 0, 7.04875931191986, 0, 5.47867612519084, 6.32313478123548, 0, 0, 0, 7.09226710059805, 0, 0, 0, 0, 0, 5.64694347314414, 7.14921565888285, 5.68648655306865, 5.29673432960381, 0, 6.28513400787422, 0, 0, 0, 0, 4.68883257303432, 5.72683121703249, 4.4986340029404, 0, 0, 5.20652358331862, 0, 0, 0, 4.52822404392824, 5.97173523410365, 0, 0, 0, 0, 0, 5.2330911336592, 0, 0, 0, 0, 4.72973426064922, 5.85673440852228, 6.91724210900296, 5.24243031072283, 0, 0, 4.57900133692927, 5.52682537551514, 0, 0, 5.65758367384023, 4.68883257303432, 4.70853077942106, 0, 4.93658653281865, 0, 0, 0, 5.24243031072283, 5.53133142169316, 4.93948302585759, 5.92774694484866, 0, 0, 0, 0, 0, 4.57900133692927, 0, 5.21624577345214, 0, 0, 0, 6.65704639255144, 0, 5.18895400489437, 5.60994472118095, 0, 0, 0, 5.98708163489918, 5.83895221574473, 5.2019356601785, 5.31778483361841, 6.07568438867842, 5.79757415935209, 0, 0, 4.86998330961081, 4.97216862014078, 5.83895221574473, 5.83895221574473, 0, 5.60772119831687, 0, 0, 0, 0, 5.14360583241926, 0, 0, 0, 5.38784764241508, 0, 0, 0, 5.80192951992705, 5.60994472118095, 5.83895221574473, 0, 5.15061155795185, 0, 0, 4.92659387279814, 4.94206198472992, 0, 0, 4.91877768235145, 5.25157971638882, 0, 0, 5.64694347314414, 5.36998330961081, 5.83895221574473, 6.42176467880446, 6.42782426294052, 5.85997362889364, 5.60994472118095, 0, 5.31126361915458, 5.83895221574473, 0, 5.54884190425618, 4.91780770420125, 0, 4.41449678254794, 0, 5.31218097478854, 5.64694347314414, 5.24243031072283, 4.77719937456903, 0, 0, 0, 3.98361927744348, 4.64259187783054, 0, 0, 5.12316855704766, 0, 5.80285897527812, 4.6690971956042, 3.93974285917508, 5.33455071048185, 5.04891675598559, 0, 5.563650238485, 0, 0, 5.47651683704017, 0, 5.85673440852228, 4.47181812794453, 0, 0, 0, 0, 5.21094093527627, 5.97347344970587, 0, 0, 0, 3.91964119325437, 4.96369673884106, 0, 4.7226065281646, 7.27864765042501, 0, 6.86551896304079, 0, 0, 4.8481761411168, 0, 0, 5.53884765916992, 4.52193940460828, 0, 4.67667641593985, 0, 0, 5.6534676846823, 0, 5.06135534878406, 0, 0, 0, 0, 5.05297810963832, 6.04937585798612, 0, 4.26977701962503, 0, 5.61930322507552, 5.88386844662172, 0, 0, 3.99196200339905, 0, 3.99196200339905, 3.99196200339905, 5.13417421362222, 5.64694347314414, 5.73866199358135, 4.24154897647298, 4.86075658586363, 4.24154897647298, 4.56041918688349, 6.70299222946026, 4.86075658586363, 4.24154897647298, 4.56041918688349, 6.02781558588674, 4.44885289590563, 6.24907989016486, 0, 4.44885289590563, 4.86075658586363, 4.32885649212263, 5.03859803218386, 0, 4.18671687513839, 0, 0, 0, 0, 0, 0, 0, 5.99009515855683, 0, 0, 5.03590673794186, 0, 0, 6.4448989910341, 4.54490718044105, 4.81200676217066, 5.06289198648224, 0, 4.61085036958552, 5.06828837509965, 0, 0, 4.35697464747055, 4.22970084972604, 5.04703226132422, 4.79039157739965, 0, 4.1362359638791, 5.51005087363519, 4.44753141102122, 4.99845159291209, 0, 0, 5.34401590408034, 0, 0, 0, 0, 0, 4.11526308367284, 0, 4.83101957587157, 0, 5.35483227176722, 0, 4.64828823133551, 5.67983273376747, 0, 0, 4.06161134317253, 4.50275270048942, 5.68289293193941, 0, 0, 5.08026790650122, 4.75687943510011, 4.01887317684174, 4.74803628912347, 5.5984431480882, 4.66942619676803, 4.76726706436959, 5.67983273376747, 0, 0, 5.33390925673613, 3.65988508193371, 0, 0, 5.1108560844243, 0, 3.08840424440941, 0, 5.10086345089318, 5.18708532757688, 0, 4.50569057276674, 4.66942619676803, 5.56586716958881, 0, 0, 4.76247163597859, 0, 0, 5.24140438986225, 0, 0, 0, 5.50841605100119, 5.29004513139035, 0, 4.99845159291209, 6.21951483913015, 4.99845159291209, 0, 0, 0, 4.8865409459131, 0, 5.53467284838857, 4.22725649496332, 4.56707347569167, 0, 0, 0, 4.62434881411479, 4.22725649496332, 0, 0, 0, 0, 0, 0, 0, 0, 4.62434881411479, 0, 5.67983273376747, 4.49267234579165, 0, 0, 0, 6.21951483913015, 0, 0, 4.78260745120908, 0, 4.42964280172089, 5.61931853978413, 0, 4.29125193071298, 0, 5.22140943155787, 4.33926365795236, 0, 0, 0, 0, 0, 4.66238644547969, 4.5446052005862, 0, 4.34743225143192, 5.906322239173, 5.19334452699367, 0, 0, 0, 7.3322796082818, 0, 5.11144100764418, 0, 0, 0, 0, 5.50841605100119, 0, 5.19334452699367, 3.08840424440941, 5.44222585146946, 0, 4.70499357965332, 0, 0, 0, 4.74803628912347, 0, 5.25281527478751, 5.74780111248537, 0, 4.7055183345893, 0, 0, 4.07165458324898, 0, 4.63886620569823, 5.21276807235686, 0, 4.77754893914646, 0, 5.23072064152801, 4.86745621720887, 0, 4.46879251920029, 5.04721600106418, 0, 0, 4.39100983020327, 0, 5.53003753299194, 0, 0, 0, 4.33926365795236, 4.56305517742098, 0, 5.65878431143908, 0, 0, 0, 4.64828823133551, 0, 0, 5.12413202499285, 0, 0, 0, 4.10664589052559, 3.6491943511463, 0, 0, 0, 4.97522587879142, 0, 0, 0, 0, 4.07165458324898, 4.77566254812319, 0, 0, 0, 0, 4.21967083832428, 0, 5.09528000964737, 5.35841132059817, 5.10707237571521, 4.33293999616685, 0, 5.14370675653711, 0, 4.68642392575495, 4.42573704905238, 4.76497471508772, 0, 0, 5.1359251643686, 0, 0, 0, 4.07165458324898, 0, 0, 0, 4.52347712814066, 0, 0, 5.51827119446648, 5.47350720409147, 5.31175934030434, 5.50841605100119, 5.47350720409147, 0, 5.23398072166647, 5.1570174138768, 5.07954797083464, 0, 0, 0, 4.07236669574765, 0, 0, 0, 5.50841605100119, 4.7990672081384, 0, 0, 5.24140438986225, 0, 5.24140438986225, 0, 0, 5.15612886274539, 0, 0, 0, 4.94574926210349, 0, 0, 4.884846781979, 4.7805865552905, 0, 0, 0, 0, 0, 0, 0, 0, 4.5235034137663, 0, 0, 0, 0, 4.75529028914856, 0, 0, 0, 0, 3.58475184409779, 0, 0, 0, 5.12560202092812, 0, 0, 0, 5.25776147359819, 0, 0, 4.03888156996801, 3.88490743924096, 0, 0, 0, 0, 0, 5.17655200562978, 4.83387324388568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.15642432047414, 0, 5.21472477803685, 3.34706178165003, 0, 4.80127633477391, 0, 0, 0, 0, 4.2045560017963, 4.04915429978765, 0, 0, 0, 0, 0, 5.67983273376747, 5.160057914294, 0, 0, 0, 0, 5.30590116636104, 0, 0, 0, 4.04892584252096, 0, 4.85914167699424, 0, 4.64277865104544, 4.43066374482382, 4.15836761122694, 0, 5.36774651080398, 0, 0, 0, 0, 4.75687943510011, 0, 4.69825600766589, 3.39084573952066, 0, 4.89676443793737, 0, 3.08840424440941, 4.22031527522809, 0, 0, 0, 5.24140438986225, 0, 4.62186501905693, 0, 3.60726976753607, 0, 0, 4.27424178838274, 0, 4.74043491710974, 5.12194352974463, 0, 4.49716217235633, 0, 0, 0, 0, 0, 0, 0, 0, 5.19334452699367, 0, 0, 0, 0, 5.35423454179863, 0, 0, 0, 4.77664916956399, 3.61595654505816, 0, 4.51490180910382, 5.36772763321859, 5.11610741471868, 3.08475184409779, 0, 0, 0, 0, 4.32728815974203, 0, 0, 4.70912459505171, 0, 0, 0, 0, 4.24690799663051, 0, 4.93880209277867, 0, 3.3457944191942, 4.66795741887588, 0, 4.77699595496913, 0, 0, 0, 0, 0, 0, 0, 4.58288705273542, 0, 5.24140438986225, 5.07203881163412, 0, 0, 0, 5.7132620437642, 4.40213534628126, 4.07165458324898, 0, 0, 3.88593701386777, 0, 0, 6.27746301373154, 0, 4.04738859925053, 0, 5.79838345525049, 4.79010521948074, 0, 0, 4.42083205457769, 0, 0, 4.30993989352961, 0, 0, 4.1284816161703, 0, 0, 6.27298930057815, 5.52026700956404, 0, 5.25422570349852, 0, 0, 0, 0, 0, 0, 0, 0, 3.58475184409779, 0, 0, 4.83500073106508, 4.25827651245211, 3.80246268528895, 4.7577540885072, 0, 4.56290083463287, 0, 4.67625737716732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.00936730398217, 0, 4.20745955373977, 0, 4.02198640305586, 0, 0, 0, 4.5722974500528, 0, 4.33577569537108, 0, 0, 0, 0, 0, 0, 0, 4.59785873273209, 4.07165458324898, 0, 0, 4.69738315387539, 0, 0, 4.98376223164808, 0, 0, 0, 0, 0, 4.73474422528117, 0, 0, 3.7780510507458, 0, 0, 4.07165458324898, 4.84713376647489, 5.73745890024692, 0, 4.5446052005862, 0, 0, 0, 3.80796867697814, 0, 5.66540912546717, 4.95624608182629, 0, 4.86388479634919, 4.47191349494482, 0, 0, 0, 4.86926607540753, 0, 0, 3.88593701386777, 3.58475184409779, 0, 4.31167370817058, 5.36003743637899, 5.51283979854248, 0, 6.3072839060449, 0, 4.1290048107316, 0, 0, 0, 4.36391942896167, 0, 3.76988385024473, 0, 0, 4.89542911639381, 0, 4.99493658104678, 4.29324547337354, 0, 4.71485705975334, 4.85669186247291, 0, 4.49190483512985, 0, 4.25036883921282, 0, 0, 0, 4.20730692066768, 4.68585783885858, 5.32757781675594, 4.68986114974663, 0, 0, 5.27792648060271, 0, 4.83375037428789, 0, 4.94775605383375, 0, 3.71043861112521, 4.95746669387291, 0, 4.13946901623151, 4.84131809231602, 0, 0, 0, 0, 0, 5.84250940544768, 0, 0, 4.49867809138072, 4.29324547337354, 0, 0, 3.54527199062208, 5.60348909478433, 0, 0, 0, 5.07726252362091, 0, 0, 0, 4.29324547337354, 4.84237694862251, 0, 0, 0, 0, 0, 0, 5.22978387204385, 5.96198716869211, 0, 5.00016104895115, 4.22863684380868, 4.47674073560793, 0, 4.74133078672761, 0, 4.61425048429258, 4.9617331632071, 0, 4.33996288791152, 0, 4.16672299090338, 0, 5.93455413716264, 4.31716334970415, 0, 5.25667279345597, 0, 0, 4.63813573323897, 0, 0, 0, 0, 0, 0, 5.12023974854408, 4.85349527907786, 4.69981829554092, 0, 0, 4.29324547337354, 4.6348108564419, 0, 0, 3.96232013129067, 0, 3.52480227011357, 0, 4.24690799663051, 0, 4.53039313028758, 4.20225407987786, 5.36774651080398, 4.60690480556876, 6.01747157111498, 4.25114880722415, 0, 5.43999342872825, 0, 0, 0, 0, 0, 4.84367768664702, 4.95451233379668, 2.82202109961155, 3.76438600190667, 0, 4.26333578266713, 0, 4.6749120363765, 0, 4.55232531716673, 0, 0, 4.6097948978766, 6.10988718694535, 5.57041513154971, 0, 4.79822377643646, 5.10554884718783, 5.04484623147216, 5.35841132059817, 4.53478694772284, 5.28494779936496, 5.01693219668386, 3.70314434961049, 0, 4.4653514153011, 0, 0, 0, 0, 0, 5.264619368718, 4.51432204818341, 3.83550825442583, 4.56009698259212, 0, 0, 0, 4.5984015777211, 4.4653514153011, 4.59748459444611, 3.21586929775511, 0, 4.29324547337354, 6.08493100169216, 0, 0, 3.84946149531937, 4.86925656045363, 4.55230873121526, 0, 0, 5.14335698681643, 0, 0, 4.54083727413122, 0, 0, 0, 5.05977518849827, 0, 0, 4.58595099106456, 4.69744179171063, 0, 5.30242614721084, 5.5643803790549, 4.38050462468806, 0, 0, 6.44014395380952, 0, 0, 0, 0, 0, 5.26474315849566, 0, 4.85584599927583, 3.92264183975476, 3.08840424440941, 5.60633675704464, 0, 0, 0, 3.89200993141832, 0, 0, 0, 0, 0, 5.53151437251067, 0, 0, 4.61930324147174, 0, 0, 3.41653801180655, 0, 0, 0, 0, 4.5446052005862, 4.49867809138072, 6.04431126744461, 0, 0, 4.39122702881706, 0, 0, 0, 0, 0, 0, 0, 0, 4.38336348054014, 0, 0, 0, 4.62268555040365, 5.32924965005265, 0, 0, 0, 4.03888156996801, 5.35841132059817, 0, 0, 0, 4.29324547337354, 0, 0, 0, 0, 5.62354024481241, 3.92264183975476, 0, 0, 8.04875931191986, 4.08670872345333, 0, 0, 0, 6.01011624405031, 4.50011610270839, 0, 5.62872388627618, 0, 0, 0, 5.09068143889225, 0, 4.29324547337354, 0, 4.14849703518256, 4.14696038383968, 4.5446052005862, 0, 0, 0, 0, 0, 0, 0, 4.25970507598547, 4.90917323454674, 4.7725810983862, 0, 0, 0, 4.07165458324898, 4.91088091003882, 0, 5.20967687299793, 5.65126354304392, 0, 0, 5.43952778610345, 0, 0, 0, 4.94642004585972, 3.41653801180655, 4.78163179205947, 5.02383185250756, 0, 5.30895000768515, 0, 5.24043094880977, 0, 0, 5.40426070147056, 4.43887005753346, 5.55797323938056, 0, 4.29125193071298, 4.98412242854925, 5.78214134368246, 5.08688827549532, 7.25889062190924, 4.60620768805788, 0, 0, 0, 3.92264183975476, 0, 5.2258021890608, 0, 4.22441594942276, 4.9058349053593, 0, 0, 4.18981842087419, 5.22402374327072, 4.41035009595542, 0, 4.98376223164808, 0, 5.56610035013788, 4.04443235322857, 0, 0, 0, 6.4637968111987, 0, 5.34618875853139, 0, 4.84713376647489, 0, 0, 5.50046544695822, 0, 0, 0, 4.74474897925142, 5.51405308292251, 0, 4.74543014475021, 4.99254966308555, 0, 0, 4.62305793795974, 0, 5.01782269537767, 0, 0, 0, 4.55699828201733, 6.37180978666142, 0, 0, 4.29324547337354, 6.434963516161, 5.65207737549816, 0, 0, 5.40519841661383, 4.5446052005862, 0, 0, 0, 5.36186261430798, 0, 6.67594033620312, 4.38050462468806, 0, 0, 0, 0, 4.81913040789207, 4.09928418046554, 4.88215787709743, 6.21951483913015, 0, 0, 4.48481037272562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.5446052005862, 3.58475184409779, 5.29603230413446, 4.21701689218848, 4.17660530186524, 5.21400702776104, 3.42732561175211, 0, 3.6491943511463, 0, 0, 0, 0, 4.55542168930457, 0, 0, 5.014964762629, 5.2375538215128, 0, 0, 0, 4.54866970987183, 5.76424874767203, 0, 0, 0, 0, 0, 5.28039701851747, 0, 5.41993634393776, 0, 4.5446052005862, 4.74133078672761, 4.75687943510011, 0, 0, 0, 0, 0, 4.39955114326686, 0, 0, 5.27358834023212, 4.5669756529141, 4.95537689737201, 0, 4.9759457525241, 3.89326535001852, 0, 5.31462430211876, 4.72202319875715, 4.27306291407555, 0, 5.82836614683824, 0, 4.43250406853704, 5.38695112076559, 4.16511779279315, 0, 0, 0, 3.89700334539345, 3.67856534568568, 0, 4.5446052005862, 0, 4.62878578067426, 0, 0, 6.44794238133503, 0, 0, 0, 0, 4.93466699780743, 0, 3.72334667652189, 0, 3.92264183975476, 4.96181262391936, 0, 4.33926365795236, 4.01190174316327, 6.42127270657952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.06292492954673, 5.44516689179994, 0, 0, 3.21586929775511, 0, 0, 5.57428379256295, 0, 0, 4.48523325714668, 0, 4.24684542568535, 4.74133078672761, 3.94454022319701, 4.5446052005862, 3.91079019238764, 0, 0, 4.68609415615235, 3.94454022319701, 0, 0, 3.84265876348639, 0, 0, 5.13642642320225, 4.69024920091807, 4.5446052005862, 4.48523325714668, 3.83478864566511, 0, 3.42732561175211, 4.42767817273019, 4.62533168329173, 0, 3.92979780550809, 3.74863558735084, 0, 0, 0, 5.66443431573979, 0, 5.34379090910842, 4.07165458324898, 6.34476620622866, 0, 0, 0, 4.35585115500986, 0, 5.78390744816618, 4.4508303130615, 0, 4.59785873273209, 4.74043491710974, 0, 5.24973641061837, 3.89648682817166, 6.82496732832287, 5.42984297823385, 3.58475184409779, 0, 4.94654352851211, 0, 5.39249236749112, 0, 0, 0, 4.24119248281048, 4.84039356810966, 5.21095252926159, 4.39926018075244, 4.07165458324898, 4.8661783604112, 4.84713376647489, 0, 0, 5.31551469081168, 5.6401157843335, 0, 4.15254156276249, 0, 5.08076026418272, 3.87482237405972, 0, 0, 0, 3.41331239679354, 0, 0, 0, 0, 0, 4.96642248389134, 0, 5.51827119446648, 0, 6.21951483913015, 3.99180551178679, 6.02160973858489, 0, 3.33408199411394, 0, 6.27746301373154, 0, 0, 0, 5.51934486271032, 0, 3.52893076149451, 4.40490312214513, 0, 4.5446052005862, 4.84392245566624, 0, 4.87263832584576, 0, 0, 6.59943928500523, 0, 0, 0, 0, 0, 0, 5.35093802844997, 0, 0, 0, 0, 5.24140438986225, 4.21564624261625, 0, 4.5446052005862, 0, 0, 3.8393224031938, 4.67625737716732, 5.70906699367986, 0, 0, 0, 0, 5.79140843890437, 4.03395580980777, 0, 0, 0, 4.22423247707574, 0, 4.41310323524655, 0, 0, 0, 4.31511637214836, 5.13607245694666, 6.44266670765523, 3.42845906532466, 5.6201472650483, 0, 3.5968288101014, 0, 4.41035009595542, 0, 0, 4.5446052005862, 0, 0, 3.91079019238764, 0, 0, 0, 0, 0, 4.67366930612497, 0, 4.5446052005862, 0, 4.6236345630258, 0, 0, 0, 3.74056545101946, 0, 0, 5.1108560844243, 0, 0, 0, 0, 0, 0, 0, 5.0397861375605, 4.65666750266804, 3.88593701386777, 0, 5.11912932989559, 0, 0, 0, 4.76023122194334, 0, 0, 0, 4.42332641725864, 0, 5.13979192553583, 0, 5.1108560844243, 0, 5.31551469081168, 0, 0, 4.07165458324898, 0, 0, 0, 5.22394729750243, 0, 0, 5.35245770677844, 0, 0, 0, 0, 0, 0, 5.15612886274539, 0, 5.45980510621828, 0, 4.5446052005862, 0, 0, 4.52271553196258, 4.84713376647489, 4.72546025335497, 4.69744179171063, 4.44850267173171, 0, 0, 3.93024478037421, 4.25970507598547, 0, 4.81234830694186, 0, 3.92264183975476, 0, 0, 3.65953538641132, 0, 4.25362665807366, 5.55169762085876, 6.14943089913506, 0, 4.21150224223926, 3.41653801180655, 0, 4.269286190978, 0, 4.50011610270839, 5.27468260273865, 4.49408709756309, 0, 0, 4.49136758829493, 0, 0, 4.54327618918066, 0, 4.5446052005862, 3.58475184409779, 0, 0, 4.50446392083745, 0, 5.79140843890437, 3.93665251167916, 3.28350214332539, 0, 4.89051044980043, 0, 0, 0, 0, 0, 3.78321705817229, 0, 4.48003799699768, 0, 4.89306075417069, 3.47912676313968, 0, 5.07141385368124, 5.46717499293355, 0, 0, 0, 4.5446052005862, 4.65077231506732, 5.15612886274539, 0, 0, 0, 0, 3.91406238230311, 0, 5.86372156207979, 5.68299659533049, 0, 0, 5.15612886274539, 0, 4.68832640390861, 5.66992544137339, 0, 0, 0, 0, 0, 6.06384931002383, 0, 6.28322456555688, 0, 0, 0, 0, 0, 4.79107576960346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.86368999783554, 0, 0, 0, 3.58475184409779, 0, 4.82055439233373, 0, 0, 0, 0, 4.85421168778822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.47588882823574, 0, 4.78252501167965, 3.41653801180655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.20681227879862, 4.50651879329543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.04924321801926, 4.58466482716377, 0, 0, 0, 0, 0, 0, 0, 5.3561138783391, 4.85243399397363, 0, 3.81453902658666, 0, 0, 0, 0, 5.15222555654165, 0, 0, 0, 0, 0, 0, 0, 5.34792062542911, 0, 0, 0, 0, 0, 0, 0, 4.50079441010229, 0, 0, 0, 5.36395188348553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.4637968111987, 0, 0, 0, 0, 0, 0, 0, 5.08314654283621, 4.74543014475021, 0, 0, 4.97832840314828, 0, 3.87450136931947, 0, 0, 0, 4.54914267404179, 0, 0, 0, 0, 0, 0, 0, 0, 5.16931459555937, 0, 0, 0, 4.36809005278833, 5.24140438986225, 0, 4.86175317682268, 0, 0, 0, 5.70255144824812, 0, 0, 0, 0, 0, 4.61167819487854, 0, 0, 0, 0, 3.97734686199437, 0, 0, 0, 4.46647508659293, 5.5874976302558, 0, 0, 0, 0, 0, 0, 4.3915051987931, 4.02198640305586, 0, 5.32200808519659, 0, 4.75591633296212, 0, 0, 0, 5.41089341195691, 0, 0, 0, 0, 4.07311695443637, 0, 0, 0, 4.58808556207911, 3.67713300566883, 4.17612848399738, 4.38036055806098, 0, 0, 0, 0, 0, 4.2477296409552, 0, 7.04875931191986, 0, 5.28020614597096, 6.27077143982824, 0, 0, 0, 5.06615328350412, 0, 0, 0, 0, 0, 5.64492710128744, 5.72856453189238, 5.31297081939636, 5.04502603031584, 0, 5.92027610321489, 0, 0, 0, 0, 4.5799001110863, 5.72683121703249, 4.33396013310961, 0, 0, 5.19107953392195, 0, 0, 0, 4.33368887409783, 5.76914879061123, 0, 0, 0, 0, 0, 4.27162014924768, 0, 0, 0, 0, 4.60460897032093, 5.72856453189238, 6.91724210900296, 4.9313620593995, 0, 0, 4.55572874074827, 5.31937215100257, 0, 0, 4.72816878340634, 4.5799001110863, 4.33386566070536, 0, 4.92776136173484, 0, 0, 0, 4.9313620593995, 4.9274331379247, 4.73921206280591, 5.61090153519716, 0, 0, 0, 0, 0, 4.55572874074827, 0, 4.63155812754724, 0, 0, 0, 5.58657768120971, 0, 4.82043203395629, 5.3602485382648, 0, 0, 0, 5.41252929660805, 5.80115125551186, 4.86476603809665, 5.30986136398136, 5.83727224806896, 5.1910832537831, 0, 0, 4.38707427738922, 4.57510137993917, 5.80115125551186, 5.80115125551186, 0, 5.06204936101895, 0, 0, 0, 0, 4.8077855259382, 0, 0, 0, 4.79447530907979, 0, 0, 0, 5.7805172508112, 5.3602485382648, 5.80115125551186, 0, 4.80427798454113, 0, 0, 4.39904481168002, 4.80892505204752, 0, 0, 4.88127948385489, 5.19197800428063, 0, 0, 5.64492710128744, 5.35950350029299, 5.80115125551186, 6.42176467880446, 6.28753733275244, 5.08597058872868, 5.3602485382648, 0, 5.12234337036363, 5.80115125551186, 0, 5.37638184997943, 4.57618733287019, 0, 4.30448167573554, 0, 4.93669876082397, 5.64492710128744, 4.9313620593995, 4.7467434878128, 0, 0, 0, 3.73773926089931, 4.49774775798938, 0, 0, 4.79376804206744, 0, 5.78113591907037, 4.6353742308296, 3.58637114430137, 5.20551093132143, 4.91958381391295, 0, 5.563650238485, 0, 0, 5.42463714963031, 0, 5.72856453189238, 4.38747801900603, 0, 0, 0, 0, 5.12416331333245, 5.47184827462, 0, 0, 0, 3.91079019238764, 4.77713990713878, 0, 4.30619251895508, 7.25770231386211, 0, 6.8231741340509, 0, 0, 4.81535683426321, 0, 0, 5.29097965268756, 4.49647981565392, 0, 4.63041404799857, 0, 0, 5.54751456787139, 0, 4.86554474143117, 0, 0, 0, 0, 5.01643661258015, 6.04937585798612, 0, 4.22567775799672, 0, 5.54548414340213, 5.14872468151357, 0, 0, 3.93008266118622, 0, 3.93008266118622, 3.93008266118622, 4.71626555531817, 5.64492710128744, 5.3046285040396, 4.19322327372815, 4.43168054139015, 4.19322327372815, 4.44653969775699, 6.70299222946026, 4.43168054139015, 4.19322327372815, 4.44653969775699, 5.90043791490013, 4.32467547269038, 5.95756843540382, 0, 4.32467547269038, 4.43168054139015, 4.30852861749189, 4.91276597929673, 0, 3.98383572579179, 0, 0, 0, 0, 0, 0, 0, 5.0976405203171, 0, 0, 4.819577900837, 0, 0, 4.93550764350809, 4.28739733718854, 4.42310634753136, 4.55298892193113, 0, 4.37163861675582, 4.90916251231002, 0, 0, 4.3264980952709, 4.1210240830879, 4.71946288663214, 4.68026528939617, 0, 4.07943249724407, 5.42053219602931, 0.994920332982088, 0.934158796642302, 1, 1, 0.948470359898909, 1, 1, 1, 1, 1, 0.924001429240125, 1, 0.907316340609438, 1, 0.965970121613647, 1, 0.872054440076476, 0.944618585063645, 1, 1, 0.861079330380671, 0.827004554830537, 0.98398780551502, 1, 1, 0.906465947854485, 0.982620227735466, 0.990310678170621, 0.981317171670479, 0.978596484969264, 0.940061006101439, 0.865512022322233, 0.944618585063645, 1, 1, 0.926495891141863, 0.939197088206099, 1, 1, 0.886236812463158, 1, 0.997142308216209, 1, 0.886039106607201, 0.958359003587491, 1, 0.967710826275172, 0.940061006101439, 1, 1, 1, 0.943806202085891, 1, 1, 1, 1, 1, 1, 0.973359600155893, 0.961944524639612, 1, 0.934158796642302, 0.970509338629489, 0.934158796642302, 1, 1, 1, 0.865356527179235, 1, 0.949932131634446, 0.976062574057618, 0.900477884191812, 1, 1, 1, 0.866913595152595, 0.976062574057618, 1, 1, 1, 1, 1, 1, 1, 1, 0.866913595152595, 1, 0.944618585063645, 0.97447770170014, 1, 1, 1, 0.970509338629489, 1, 1, 0.908984290730076, 1, 0.935474615780812, 0.829800135801163, 1, 0.990343683985072, 1, 0.932068534321918, 0.987753073835903, 1, 1, 1, 1, 1, 0.881379066737174, 0.965298874430441, 1, 0.973798575104475, 0.968071397299403, 0.98014460795167, 1, 1, 1, 1, 1, 0.893709967394205, 1, 1, 1, 1, 0.973359600155893, 1, 0.98014460795167, 0.997142308216209, 0.909154992487985, 1, 0.964149647670093, 1, 1, 1, 0.981317171670479, 1, 0.868339148914355, 0.994839403627373, 1, 0.989760608902712, 1, 1, 0.986958643237999, 1, 0.863316103725092, 0.859331431304159, 1, 0.974613349142871, 1, 0.960358606290315, 0.978702536124294, 1, 0.949425221598338, 0.828729853563536, 1, 1, 0.956089259049146, 1, 0.962628213950657, 1, 1, 1, 0.987753073835903, 0.920073456679479, 1, 1, 1, 1, 1, 0.872054440076476, 1, 1, 0.994194490442555, 1, 1, 1, 0.856851020601608, 0.998385632325618, 1, 1, 1, 0.937561173874246, 1, 1, 1, 1, 0.986958643237999, 0.924540018662236, 1, 1, 1, 1, 0.968190384171612, 1, 0.997104214087563, 0.943267848289, 0.948437298462673, 0.972676867795098, 1, 0.834617234690711, 1, 0.972074016448102, 0.972826039452754, 0.98300711850685, 1, 1, 0.987670598489457, 1, 1, 1, 0.986958643237999, 1, 1, 1, 0.941209966459466, 1, 1, 0.990076562967133, 0.998245793110004, 0.938225302296469, 0.973359600155893, 0.998245793110004, 1, 0.998873892974567, 0.978945701373555, 0.77414122960492, 1, 1, 1, 0.970701080714011, 1, 1, 1, 0.973359600155893, 0.953513721816977, 1, 1, 1, 1, 1, 1, 1, 0.940187455424166, 1, 1, 1, 0.977412580562857, 1, 1, 0.876374152522318, 0.928792523594588, 1, 1, 1, 1, 1, 1, 1, 1, 0.953074289377523, 1, 1, 1, 1, 0.949722253452843, 1, 1, 1, 1, 0.99346708194209, 1, 1, 1, 0.920849402466095, 1, 1, 1, 0.99264704534027, 1, 1, 0.990161248736512, 0.986978730704104, 1, 1, 1, 1, 1, 0.943912228662884, 0.968185498209344, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.893860485957797, 1, 0.950292075023272, 0.980471987744833, 1, 0.967443195281189, 1, 1, 1, 1, 0.941378509500771, 0.991054978498965, 1, 1, 1, 1, 1, 0.944618585063645, 0.930494281894962, 1, 1, 1, 1, 0.987117333765914, 1, 1, 1, 0.979897924639532, 1, 0.988620857069118, 1, 0.987687970323238, 0.983574043031138, 0.994441333561322, 1, 0.93100935089304, 1, 1, 1, 1, 0.982620227735466, 1, 0.939420908064037, 0.998696569398849, 1, 0.97951572023157, 1, 0.997142308216209, 0.98056206744157, 1, 1, 1, 1, 1, 0.957998642398146, 1, 0.98509412877248, 1, 1, 0.930356313551994, 1, 0.896126811880461, 0.976368888481894, 1, 0.986984752317855, 1, 1, 1, 1, 1, 1, 1, 1, 0.98014460795167, 1, 1, 1, 1, 0.896153313719491, 1, 1, 1, 0.923413878957959, 0.854109703937277, 1, 0.960390981080231, 0.985240067069429, 0.937765748703719, 0.881813271469423, 1, 1, 1, 1, 0.955467091441193, 1, 1, 0.96659854507641, 1, 1, 1, 1, 0.956460484743973, 1, 0.86256244491621, 1, 0.991119566802369, 0.945944844742744, 1, 0.914279213716141, 1, 1, 1, 1, 1, 1, 1, 0.898531922890062, 1, 1, 0.979939891012669, 1, 1, 1, 0.902043601195124, 0.918062787926082, 0.986958643237999, 1, 1, 0.983459162381014, 1, 1, 0.979421139817694, 1, 0.982432495099588, 1, 0.964115338273121, 0.97206029132887, 1, 1, 0.968679829242745, 1, 1, 0.93951167979817, 1, 1, 0.92335832416013, 1, 1, 0.993223858004098, 0.912024555425134, 1, 0.928721037416729, 1, 1, 1, 1, 1, 1, 1, 1, 0.99346708194209, 1, 1, 0.945936105667778, 0.943535835656717, 0.976151490850413, 0.94007618148581, 1, 0.960741342895178, 1, 0.970343354819372, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.934872728642439, 1, 0.953545090682515, 1, 0.954859802129611, 1, 1, 1, 0.953413202616944, 1, 0.906352693578538, 1, 1, 1, 1, 1, 1, 1, 0.986149108743654, 0.986958643237999, 1, 1, 0.936176658052113, 1, 1, 0.866512405555175, 1, 1, 1, 1, 1, 1, 1, 1, 0.976558259297726, 1, 1, 0.986958643237999, 0.952498200341754, 0.988530914014041, 1, 0.965298874430441, 1, 1, 1, 0.996605661887173, 1, 0.955194578024458, 0.930240190694633, 1, 0.989300818884289, 0.966130661949901, 1, 1, 1, 0.966928717031311, 1, 1, 0.983459162381014, 0.99346708194209, 1, 0.963776835169683, 0.946339370841035, 0.998083746289083, 1, 1, 1, 0.939983311825304, 1, 1, 1, 0.959914496257683, 1, 0.940285807080799, 1, 1, 0.999277317334882, 1, 0.996392547561701, 0.98204776088462, 1, 0.865498799699483, 0.93978165831114, 1, 0.970728552883231, 1, 0.957118866645677, 1, 1, 1, 0.982909442350276, 0.933989023658389, 0.945381820350393, 0.923270784327081, 1, 1, 0.934105332748745, 1, 0.949860689755743, 1, 0.929327575334513, 1, 0.964486601666365, 0.955356435417741, 1, 0.982547471616407, 0.847170554897787, 1, 1, 1, 1, 1, 0.94573750978056, 1, 1, 0.991186917689071, 0.98204776088462, 1, 1, 0.997763206231034, 0.807386342857999, 1, 1, 1, 0.857385794748486, 1, 1, 1, 0.98204776088462, 0.986841405531365, 1, 1, 1, 1, 1, 1, 0.986301351004674, 0.94056953555401, 1, 0.925996497064497, 0.964023897187932, 0.939916445676218, 1, 0.993828302407991, 1, 0.938529164108954, 0.880834082455889, 1, 0.910910799020653, 1, 0.99408900575661, 1, 0.960240118152949, 0.907048308213659, 1, 0.977986404059952, 1, 1, 0.893291834795942, 1, 1, 1, 1, 1, 1, 0.923146152952539, 0.97203960889775, 0.972582962023575, 1, 1, 0.98204776088462, 0.925805283051533, 1, 1, 0.986752802686925, 1, 0.927474880874839, 1, 0.956460484743973, 1, 0.864475377055235, 0.987507576553607, 0.93100935089304, 0.985952732762231, 0.992957852526483, 0.996707291346799, 1, 0.89497548981621, 1, 1, 1, 1, 1, 0.96582231282881, 0.919478790326769, 0.944236852872928, 0.990028106601432, 1, 0.91933686153811, 1, 0.967541545344127, 1, 0.939411961286571, 1, 1, 0.960625193711202, 1, 0.946367855611587, 1, 0.973457130783215, 0.995401387575338, 0.946126357657951, 0.943267848289, 0.953846573582948, 0.91675472658365, 0.850818212462798, 0.931823163359606, 1, 0.983069831126099, 1, 1, 1, 1, 1, 0.966220027107676, 0.983957967575225, 0.860906246728859, 0.843999609094827, 1, 1, 1, 0.878760166284342, 0.983069831126099, 0.919844737335295, 0.910628405783056, 1, 0.98204776088462, 0.844856901019799, 1, 1, 0.99188819767118, 0.964906723917584, 0.938245949347245, 1, 1, 0.9554776936856, 1, 1, 0.936817252270321, 1, 1, 1, 0.976464879793234, 1, 1, 0.912920477192394, 0.944562201305546, 1, 0.987984544980855, 0.900492332231899, 0.951604821173758, 1, 1, 1, 1, 1, 1, 1, 1, 0.929911580562157, 1, 0.95685196102246, 0.988286271791929, 0.997142308216209, 0.945671644070943, 1, 1, 1, 0.983600036585799, 1, 1, 1, 1, 1, 0.934009625224729, 1, 1, 0.992950475878328, 1, 1, 0.997416059655127, 1, 1, 1, 1, 0.965298874430441, 0.991186917689071, 0.95775690400469, 1, 1, 0.977252082094477, 1, 1, 1, 1, 1, 1, 1, 1, 0.99881326102443, 1, 1, 1, 0.951718108741386, 0.985751649812723, 1, 1, 1, 0.990161248736512, 0.943267848289, 1, 1, 1, 0.98204776088462, 1, 1, 1, 1, 0.926279729891653, 0.988286271791929, 1, 1, 0.939909705275819, 0.988751246607975, 1, 1, 1, 0.961255584547257, 0.983562970985142, 1, 0.970185965405828, 1, 1, 1, 0.963815723288858, 1, 0.98204776088462, 1, 0.999644535736791, 0.955633824645385, 0.965298874430441, 1, 1, 1, 1, 1, 1, 1, 1, 0.996264478819499, 0.967761142976547, 1, 1, 1, 0.986958643237999, 0.978748079802256, 1, 0.965566427935267, 0.998635440114505, 1, 1, 0.923434904357737, 1, 1, 1, 0.872643461590167, 0.997416059655127, 0.978251803251592, 0.979564690552889, 1, 0.981363905000856, 1, 0.986423090719648, 1, 1, 1, 0.977230860541024, 0.903726328344392, 1, 0.990343683985072, 0.983875377178797, 0.930594962565513, 0.95459929299878, 0.969802732463455, 0.971080849310376, 1, 1, 1, 0.988286271791929, 1, 0.98490114015921, 1, 0.846170473522277, 0.954809504627292, 1, 1, 0.971890058124678, 0.945557244159189, 0.969478601674612, 1, 0.866512405555175, 1, 0.944319877234484, 0.983261639112289, 1, 1, 1, 1, 1, 0.92821946606526, 1, 0.952498200341754, 1, 1, 0.989289446375527, 1, 1, 1, 0.939633322360194, 0.91687419247356, 1, 0.93423002757578, 0.957959874384621, 1, 1, 0.975667571136841, 1, 0.890700852294019, 1, 1, 1, 0.953450874124601, 0.998063333895183, 1, 1, 0.98204776088462, 0.984524863257531, 0.989906831544423, 1, 1, 0.98999100177396, 0.965298874430441, 1, 1, 1, 0.94723684624135, 1, 0.983426517994662, 0.951604821173758, 1, 1, 1, 1, 0.957053986486345, 0.995380901277139, 0.975256889624768, 0.970509338629489, 1, 1, 0.97358081791199, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.965298874430441, 0.99346708194209, 0.919203652539255, 0.985759360035672, 0.950439800143307, 0.993111643576231, 0.99191828360219, 1, 0.998385632325618, 1, 1, 1, 1, 0.868233432874112, 1, 1, 0.958139913024322, 0.964225822949198, 1, 1, 1, 0.963352467805545, 0.996158050877736, 1, 1, 1, 1, 1, 0.962157748868942, 1, 0.940215681338146, 1, 0.965298874430441, 0.993828302407991, 0.982620227735466, 1, 1, 1, 1, 1, 0.97308261975501, 1, 1, 0.998217805296784, 0.960417282603557, 0.982479729366235, 1, 0.966326783346396, 0.972090463266952, 1, 0.942596134664522, 0.976884597719881, 0.961820752423966, 1, 0.994811089107031, 1, 0.950666976990768, 0.96146996369012, 0.947114900897405, 1, 1, 1, 0.968607064681371, 0.996013879232518, 1, 0.965298874430441, 1, 0.984661703181888, 1, 1, 0.977369658898889, 1, 1, 1, 1, 0.98604895578194, 1, 0.886458022361784, 1, 0.988286271791929, 0.912130987466861, 1, 0.987753073835903, 0.992150564299515, 0.993759010850772, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.812667446503371, 0.933070708232144, 1, 1, 0.910628405783056, 1, 1, 0.949004436439421, 1, 1, 0.941646948543794, 1, 0.953956831754347, 0.993828302407991, 0.996238606380185, 0.965298874430441, 0.997741884925089, 1, 1, 0.953823300358787, 0.996238606380185, 1, 1, 0.961973365989584, 1, 1, 0.930818118067561, 0.862621890182039, 0.965298874430441, 0.941646948543794, 0.997697234475475, 1, 0.99191828360219, 0.984433279319848, 0.966618028852912, 1, 0.985213497119762, 1, 1, 1, 1, 0.994762745089391, 1, 0.985149523174871, 0.986958643237999, 0.99946651678917, 1, 1, 1, 0.99315936253798, 1, 0.944057624876591, 0.847130573198292, 1, 0.986149108743654, 0.896126811880461, 1, 0.988044798722156, 0.994335715734134, 0.972136608500562, 0.929629756588501, 0.99346708194209, 1, 0.979843740968473, 1, 0.971655355258893, 1, 1, 1, 0.993464569346251, 0.987501791770423, 0.968003257992448, 0.99611186222421, 0.986958643237999, 0.830517461839042, 0.952498200341754, 1, 1, 0.90792320125539, 0.988792297026987, 1, 0.990739177062043, 1, 0.950740455902777, 0.990344597111936, 1, 1, 1, 0.976168823366887, 1, 1, 1, 1, 1, 0.936265859866267, 1, 0.990076562967133, 1, 0.970509338629489, 0.992013541485013, 0.922377295760812, 1, 0.998674407518751, 1, 0.979421139817694, 1, 1, 1, 0.961064355347345, 1, 0.990186408704722, 1, 1, 0.965298874430441, 0.924729449156158, 1, 0.933427101080754, 1, 1, 0.98731903764489, 1, 1, 1, 1, 1, 1, 0.99587636583925, 1, 1, 1, 1, 1, 0.95808869292781, 1, 0.965298874430441, 1, 1, 0.977614003817106, 0.970343354819372, 0.945533153060321, 1, 1, 1, 1, 0.993995455348349, 0.968740967404791, 1, 1, 1, 0.928777292592925, 1, 0.979825467922652, 1, 1, 1, 0.961389779539419, 0.979777072302611, 0.984435382634528, 0.998281872691283, 0.953669090332997, 1, 0.996853255784901, 1, 0.969478601674612, 1, 1, 0.965298874430441, 1, 1, 0.997741884925089, 1, 1, 1, 1, 1, 0.898445502399347, 1, 0.965298874430441, 1, 0.976335570199817, 1, 1, 1, 0.99039550598454, 1, 1, 0.886236812463158, 1, 1, 1, 1, 1, 1, 1, 0.940678855199659, 0.857369126949171, 0.983459162381014, 1, 0.86958191109491, 1, 1, 1, 0.867261699205319, 1, 1, 1, 0.965523509749952, 1, 0.980264911989058, 1, 0.886236812463158, 1, 0.90792320125539, 1, 1, 0.974439995659716, 1, 1, 1, 0.980258627968007, 1, 1, 0.94326457043455, 1, 1, 1, 1, 1, 1, 0.940187455424166, 1, 1, 1, 0.965298874430441, 1, 1, 0.858484596229034, 0.952498200341754, 0.988978763868753, 0.944562201305546, 0.885341771453954, 1, 1, 0.805399695838063, 1, 1, 0.954111425993066, 1, 0.988286271791929, 1, 1, 0.972975962173482, 1, 0.990633315488343, 0.983560978962337, 0.99186939171656, 1, 0.989680985787526, 0.997416059655127, 1, 0.959617938721838, 1, 0.983562970985142, 0.909850984890526, 0.957897102017036, 1, 1, 0.851766826920652, 1, 1, 0.974971130419027, 1, 0.965298874430441, 0.99346708194209, 1, 1, 0.998998551516746, 1, 0.993995455348349, 0.989174293764323, 0.919973818793555, 1, 0.906566162873233, 1, 1, 1, 1, 1, 0.877175296661783, 1, 0.97264571597225, 1, 0.972144210698642, 0.998306851994036, 1, 0.987921282108409, 0.942882733924413, 1, 1, 1, 0.965298874430441, 0.975828189672704, 0.940187455424166, 1, 1, 1, 1, 0.951221697111913, 1, 0.995300573326655, 0.99341406460049, 1, 1, 0.940187455424166, 1, 0.926134903700038, 0.993398981946814, 1, 1, 1, 1, 1, 0.96322282183259, 1, 1, 1, 1, 1, 1, 1, 0.984806699422035, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.959756521435583, 1, 1, 1, 0.99346708194209, 1, 0.863937805228037, 1, 1, 1, 1, 0.96842354277453, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96015721473321, 1, 0.998324792784443, 0.997416059655127, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.960568373325059, 0.919607410844497, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98229152989157, 0.970817593318758, 1, 1, 1, 1, 1, 1, 1, 0.955739687766922, 0.989260344109928, 1, 0.99541124521139, 1, 1, 1, 1, 0.97391266841691, 1, 1, 1, 1, 1, 1, 1, 0.937954288591721, 1, 1, 1, 1, 1, 1, 1, 0.982195221991677, 1, 1, 1, 0.954900378818184, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.981091764742125, 0.93423002757578, 1, 1, 0.968554487241949, 1, 0.856454893763552, 1, 1, 1, 0.96926158755819, 1, 1, 1, 1, 1, 1, 1, 1, 0.970376655968348, 1, 1, 1, 0.956653101174794, 1, 1, 0.978829202466339, 1, 1, 1, 0.978531448472892, 1, 1, 1, 1, 1, 0.989837280870498, 1, 1, 1, 1, 0.992377446462086, 1, 1, 1, 0.974445988455069, 0.995171964143322, 1, 1, 1, 1, 1, 1, 0.93443953275981, 0.954859802129611, 1, 0.958146964566066, 1, 0.938528502433156, 1, 1, 1, 0.950507541491125, 1, 1, 1, 1, 0.838996115750655, 1, 1, 1, 0.854267070327657, 0.974797732245555, 0.946943844849797, 0.985862948106913, 1, 1, 1, 1, 1, 0.99332802417647, 1, 1, 1, 0.96377409894567, 0.991718768740684, 1, 1, 1, 0.714320711790017, 1, 1, 1, 1, 1, 0.999642926856576, 0.801285736117735, 0.934315199695543, 0.952478587064269, 1, 0.941949065174709, 1, 1, 1, 1, 0.976767679320755, 1, 0.963394694984488, 1, 1, 0.997033711813742, 1, 1, 1, 0.957039411490416, 0.966075782741424, 1, 1, 1, 1, 1, 0.816270926713402, 1, 1, 1, 1, 0.973544963959327, 0.97811581203966, 1, 0.940663350223831, 1, 1, 0.99491753889799, 0.96246430628483, 1, 1, 0.83572228993601, 0.976767679320755, 0.920428444398579, 1, 0.998212292841391, 1, 1, 1, 0.940663350223831, 0.890822256392005, 0.959455076168238, 0.946548762523197, 1, 1, 1, 1, 1, 0.99491753889799, 1, 0.887910257434449, 1, 1, 1, 0.839197648894339, 1, 0.928979526395786, 0.955490437905137, 1, 1, 1, 0.904034657730067, 0.993526071316197, 0.935183815389542, 0.998510005597263, 0.960759623878138, 0.895388849042895, 1, 1, 0.900839694610743, 0.920142040518658, 0.993526071316197, 0.993526071316197, 1, 0.902692766277021, 1, 1, 1, 1, 0.934711111733243, 1, 1, 1, 0.88986839036352, 1, 1, 1, 0.996309457217239, 0.955490437905137, 0.993526071316197, 1, 0.932758747283897, 1, 1, 0.892918094176395, 0.973060448635859, 1, 1, 0.992376520973674, 0.988650707915146, 1, 1, 0.999642926856576, 0.998048446575417, 0.993526071316197, 1, 0.978175052016139, 0.867916975539172, 0.955490437905137, 1, 0.964430263241007, 0.993526071316197, 1, 0.968919630933354, 0.930534011925839, 1, 0.975078675502195, 1, 0.929316750361743, 0.999642926856576, 0.940663350223831, 0.993624740278089, 1, 1, 1, 0.938277229971144, 0.968801022434725, 1, 1, 0.935703752216568, 1, 0.99625649075735, 0.992777412128764, 0.91030589368269, 0.975810562845176, 0.974384021697464, 1, 1, 1, 1, 0.990526882514271, 1, 0.97811581203966, 0.981139637944697, 1, 1, 1, 1, 0.983347034053607, 0.916024540946009, 1, 1, 1, 0.997741884925089, 0.96241574747255, 1, 0.91182538567926, 0.997122358772007, 1, 0.993832246445194, 1, 1, 0.993230586946861, 1, 1, 0.955249174244394, 0.994369763352333, 1, 0.990107853563784, 1, 1, 0.981258738402629, 1, 0.961312614140018, 1, 1, 1, 1, 0.992768324685898, 1, 1, 0.989671764725506, 1, 0.986863303381818, 0.875057749543968, 1, 1, 0.98449901523107, 1, 0.98449901523107, 0.98449901523107, 0.918602555948484, 0.999642926856576, 0.924366779220102, 0.988606590890998, 0.911726490126796, 0.988606590890998, 0.97502872335639, 1, 0.911726490126796, 0.988606590890998, 0.97502872335639, 0.978868353025787, 0.972087765965574, 0.953351299729768, 1, 0.972087765965574, 0.911726490126796, 0.995304100593834, 0.975026375971375, 1, 0.951541707883008, 1, 1, 1, 1, 1, 1, 1, 0.8510116092288, 1, 1, 0.957042723711505, 1, 1, 0.76580062005226, 0.943341011591898, 0.919181241037186, 0.899286205213833, 1, 0.948119818763234, 0.968603628875696, 1, 1, 0.993005111421213, 0.974306275904791, 0.935096635461939, 0.977011005003634, 1, 0.986266869895461, 0.983753566045241, 2.30258509299405, 2.83321334405622, 0, 0, 2.89037175789616, 0, 0, 0, 0, 0, 2.77258872223978, 0, 2.83321334405622, 0, 2.83321334405622, 0, 2.77258872223978, 2.89037175789616, 0, 0, 1.38629436111989, 2.56494935746154, 1.6094379124341, 0, 0, 2.70805020110221, 1.09861228866811, 2.94443897916644, 2.70805020110221, 2.63905732961526, 2.83321334405622, 3.09104245335832, 2.89037175789616, 0, 0, 2.56494935746154, 1.6094379124341, 0, 0, 2.77258872223978, 0, 1.09861228866811, 0, 2.56494935746154, 2.99573227355399, 0, 3.04452243772342, 2.83321334405622, 1.09861228866811, 0, 0, 2.83321334405622, 0, 0, 0.693147180559945, 0, 0, 0, 1.79175946922805, 2.484906649788, 0, 2.83321334405622, 2.70805020110221, 2.83321334405622, 0, 0, 0, 2.83321334405622, 0, 2.94443897916644, 2.83321334405622, 2.83321334405622, 0, 0, 0, 2.89037175789616, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 2.89037175789616, 0, 2.89037175789616, 2.19722457733622, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 0, 1.6094379124341, 1.94591014905531, 0, 2.89037175789616, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 2.89037175789616, 2.77258872223978, 0, 2.89037175789616, 2.89037175789616, 1.38629436111989, 0, 0, 0, 1.79175946922805, 0, 2.83321334405622, 0, 0, 0, 0, 1.79175946922805, 0, 1.38629436111989, 1.09861228866811, 1.79175946922805, 0, 2.77258872223978, 0, 0, 0, 2.70805020110221, 0, 2.94443897916644, 2.63905732961526, 0, 2.484906649788, 0, 0, 2.83321334405622, 0, 2.77258872223978, 2.19722457733622, 0, 2.83321334405622, 0, 3.09104245335832, 2.70805020110221, 0, 2.484906649788, 1.94591014905531, 0, 0, 2.94443897916644, 0, 2.56494935746154, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 1.94591014905531, 0, 0, 0, 2.77258872223978, 0, 0, 2.30258509299405, 0, 0, 0, 2.56494935746154, 1.38629436111989, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 0, 2.94443897916644, 0, 2.30258509299405, 1.38629436111989, 2.63905732961526, 2.30258509299405, 0, 2.07944154167984, 0, 2.99573227355399, 2.77258872223978, 2.63905732961526, 0, 0, 2.07944154167984, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.94443897916644, 0, 0, 3.04452243772342, 1.6094379124341, 2.484906649788, 1.79175946922805, 1.6094379124341, 0, 1.38629436111989, 2.99573227355399, 2.30258509299405, 0, 0, 0, 2.94443897916644, 0, 0, 0, 1.79175946922805, 2.39789527279837, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 2.83321334405622, 0, 0, 0, 2.07944154167984, 0, 0, 2.94443897916644, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.94443897916644, 0, 0, 0, 2.77258872223978, 0, 1.09861228866811, 2.94443897916644, 2.19722457733622, 0, 0, 0, 0, 0, 2.94443897916644, 2.07944154167984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 0, 3.09104245335832, 1.94591014905531, 0, 1.94591014905531, 0, 0, 0, 0, 3.13549421592915, 2.99573227355399, 0, 0, 0, 0, 0, 2.89037175789616, 2.77258872223978, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.07944154167984, 0, 2.70805020110221, 0, 2.83321334405622, 2.07944154167984, 2.77258872223978, 0, 3.04452243772342, 0, 0, 0, 0, 1.09861228866811, 0, 2.83321334405622, 1.6094379124341, 0, 2.94443897916644, 0, 1.09861228866811, 2.89037175789616, 0, 0, 0, 0.693147180559945, 0, 2.83321334405622, 0, 1.6094379124341, 0, 0, 2.89037175789616, 0, 3.04452243772342, 2.94443897916644, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 2.70805020110221, 1.79175946922805, 0, 2.19722457733622, 2.19722457733622, 2.99573227355399, 1.09861228866811, 0, 0, 0, 0, 3.04452243772342, 0, 0, 2.07944154167984, 0, 0, 0, 0, 2.83321334405622, 0, 2.77258872223978, 0, 2.30258509299405, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0.693147180559945, 3.04452243772342, 0, 0, 0, 2.70805020110221, 2.99573227355399, 2.83321334405622, 0, 0, 2.99573227355399, 0, 0, 2.70805020110221, 0, 3.04452243772342, 0, 2.77258872223978, 1.79175946922805, 0, 0, 2.94443897916644, 0, 0, 2.94443897916644, 0, 0, 2.30258509299405, 0, 0, 1.94591014905531, 1.94591014905531, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.77258872223978, 2.99573227355399, 2.83321334405622, 2.83321334405622, 0, 2.89037175789616, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 0, 2.94443897916644, 0, 1.09861228866811, 0, 0, 0, 2.94443897916644, 0, 2.56494935746154, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.6094379124341, 0, 0, 2.83321334405622, 2.94443897916644, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 1.94591014905531, 0, 2.56494935746154, 2.83321334405622, 0, 2.30258509299405, 2.89037175789616, 0, 0, 0, 2.99573227355399, 0, 0, 2.99573227355399, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.94591014905531, 0, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 2.70805020110221, 0, 2.30258509299405, 0, 0, 1.94591014905531, 0, 2.70805020110221, 2.99573227355399, 0, 2.56494935746154, 2.70805020110221, 0, 2.70805020110221, 0, 3.09104245335832, 0, 0, 0, 2.70805020110221, 2.07944154167984, 2.77258872223978, 2.56494935746154, 0, 0, 2.77258872223978, 0, 2.99573227355399, 0, 2.89037175789616, 0, 2.83321334405622, 2.70805020110221, 0, 2.94443897916644, 2.70805020110221, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 2.83321334405622, 2.99573227355399, 0, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.99573227355399, 2.30258509299405, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.89037175789616, 0, 2.77258872223978, 1.6094379124341, 2.70805020110221, 0, 0.693147180559945, 0, 2.89037175789616, 2.89037175789616, 0, 2.89037175789616, 0, 2.83321334405622, 0, 2.19722457733622, 2.94443897916644, 0, 2.56494935746154, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.99573227355399, 2.89037175789616, 0, 0, 2.99573227355399, 2.484906649788, 0, 0, 2.19722457733622, 0, 1.38629436111989, 0, 2.83321334405622, 0, 2.77258872223978, 2.56494935746154, 3.04452243772342, 2.07944154167984, 2.56494935746154, 1.6094379124341, 0, 2.19722457733622, 0, 0, 0, 0, 0, 2.94443897916644, 2.77258872223978, 1.6094379124341, 3.04452243772342, 0, 3.04452243772342, 0, 2.89037175789616, 0, 2.89037175789616, 0, 0, 2.77258872223978, 1.6094379124341, 2.63905732961526, 0, 2.19722457733622, 2.94443897916644, 2.77258872223978, 1.38629436111989, 2.77258872223978, 2.77258872223978, 2.94443897916644, 2.19722457733622, 0, 2.70805020110221, 0, 0, 0, 0, 0, 2.19722457733622, 2.99573227355399, 1.94591014905531, 2.70805020110221, 0, 0, 0, 2.56494935746154, 2.70805020110221, 2.94443897916644, 0.693147180559945, 0, 2.99573227355399, 2.19722457733622, 0, 0, 1.94591014905531, 2.77258872223978, 2.94443897916644, 0, 0, 2.99573227355399, 0, 0, 2.94443897916644, 0, 0, 0, 3.04452243772342, 0, 0, 2.83321334405622, 1.94591014905531, 0, 2.07944154167984, 2.30258509299405, 2.77258872223978, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 1.94591014905531, 0, 3.17805383034795, 1.6094379124341, 1.09861228866811, 2.63905732961526, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.56494935746154, 0, 0, 1.09861228866811, 0, 0, 0, 0, 2.77258872223978, 2.83321334405622, 2.77258872223978, 0, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.30258509299405, 1.79175946922805, 0, 0, 0, 2.94443897916644, 1.38629436111989, 0, 0, 0, 2.99573227355399, 0, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 0, 1.38629436111989, 1.6094379124341, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 2.70805020110221, 0, 0, 0, 2.94443897916644, 0, 2.99573227355399, 0, 2.94443897916644, 2.77258872223978, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 2.83321334405622, 2.89037175789616, 0, 0, 0, 2.83321334405622, 3.04452243772342, 0, 2.89037175789616, 2.39789527279837, 0, 0, 2.77258872223978, 0, 0, 0, 2.30258509299405, 1.09861228866811, 2.484906649788, 2.89037175789616, 0, 1.09861228866811, 0, 2.89037175789616, 0, 0, 1.79175946922805, 2.83321334405622, 2.30258509299405, 0, 2.89037175789616, 2.94443897916644, 2.83321334405622, 2.63905732961526, 1.6094379124341, 3.04452243772342, 0, 0, 0, 1.6094379124341, 0, 2.94443897916644, 0, 3.04452243772342, 2.99573227355399, 0, 0, 2.94443897916644, 2.63905732961526, 2.77258872223978, 0, 2.77258872223978, 0, 2.77258872223978, 3.04452243772342, 0, 0, 0, 1.09861228866811, 0, 2.77258872223978, 0, 2.94443897916644, 0, 0, 2.19722457733622, 0, 0, 0, 2.99573227355399, 2.77258872223978, 0, 2.94443897916644, 2.484906649788, 0, 0, 3.13549421592915, 0, 2.83321334405622, 0, 0, 0, 2.19722457733622, 2.70805020110221, 0, 0, 2.99573227355399, 2.30258509299405, 2.70805020110221, 0, 0, 2.56494935746154, 2.77258872223978, 0, 0, 0, 2.63905732961526, 0, 2.63905732961526, 2.77258872223978, 0, 0, 0, 0, 2.94443897916644, 2.89037175789616, 2.77258872223978, 2.70805020110221, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 2.77258872223978, 2.56494935746154, 2.89037175789616, 2.07944154167984, 2.19722457733622, 0, 1.38629436111989, 0, 0, 0, 0, 3.04452243772342, 0, 0, 2.484906649788, 2.89037175789616, 0, 0, 0, 2.83321334405622, 2.70805020110221, 0, 0, 0, 0, 0, 2.89037175789616, 0, 1.94591014905531, 0, 2.77258872223978, 0.693147180559945, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 1.6094379124341, 0, 0, 2.56494935746154, 2.99573227355399, 2.99573227355399, 0, 2.89037175789616, 2.70805020110221, 0, 2.83321334405622, 2.77258872223978, 2.19722457733622, 0, 2.70805020110221, 0, 2.83321334405622, 2.30258509299405, 2.83321334405622, 0, 0, 0, 2.99573227355399, 1.6094379124341, 0, 2.77258872223978, 0, 2.77258872223978, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 0, 2.39789527279837, 0, 1.6094379124341, 2.63905732961526, 0, 2.83321334405622, 2.39789527279837, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 2.89037175789616, 0, 0, 2.99573227355399, 0, 2.94443897916644, 0.693147180559945, 2.83321334405622, 2.77258872223978, 1.09861228866811, 0, 0, 2.77258872223978, 2.83321334405622, 0, 0, 2.94443897916644, 0, 0, 1.94591014905531, 2.94443897916644, 2.77258872223978, 2.99573227355399, 1.09861228866811, 0, 2.19722457733622, 2.484906649788, 2.70805020110221, 0, 2.94443897916644, 0.693147180559945, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 2.83321334405622, 1.79175946922805, 0, 0, 0, 2.63905732961526, 0, 1.79175946922805, 2.94443897916644, 0, 2.77258872223978, 3.04452243772342, 0, 2.89037175789616, 2.07944154167984, 2.83321334405622, 3.09104245335832, 1.09861228866811, 0, 3.04452243772342, 0, 2.94443897916644, 0, 0, 0, 2.94443897916644, 3.09104245335832, 2.94443897916644, 2.484906649788, 2.83321334405622, 1.38629436111989, 2.94443897916644, 0, 0, 2.63905732961526, 2.484906649788, 0, 2.83321334405622, 0, 2.63905732961526, 1.79175946922805, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.83321334405622, 0, 3.04452243772342, 0, 2.70805020110221, 2.89037175789616, 2.70805020110221, 0, 1.79175946922805, 0, 2.70805020110221, 0, 0, 0, 2.99573227355399, 0, 1.94591014905531, 0.693147180559945, 0, 2.77258872223978, 2.89037175789616, 0, 2.70805020110221, 0, 0, 2.56494935746154, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0.693147180559945, 2.99573227355399, 0, 2.77258872223978, 0, 0, 2.89037175789616, 2.83321334405622, 2.89037175789616, 0, 0, 0, 0.693147180559945, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.63905732961526, 0, 2.94443897916644, 0, 0, 0, 2.19722457733622, 2.77258872223978, 2.39789527279837, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 2.77258872223978, 0, 0, 2.77258872223978, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.77258872223978, 0, 2.89037175789616, 0, 0, 0, 2.19722457733622, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.07944154167984, 2.99573227355399, 0, 2.70805020110221, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.77258872223978, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.63905732961526, 0, 0, 2.83321334405622, 0, 0, 0, 1.94591014905531, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.56494935746154, 0, 2.77258872223978, 0, 0, 2.63905732961526, 2.94443897916644, 2.70805020110221, 1.94591014905531, 1.94591014905531, 0, 0, 2.30258509299405, 1.38629436111989, 0, 2.89037175789616, 0, 1.6094379124341, 0, 0, 2.83321334405622, 0, 2.94443897916644, 2.56494935746154, 1.6094379124341, 0, 2.77258872223978, 1.09861228866811, 0, 2.30258509299405, 0, 2.70805020110221, 1.38629436111989, 2.94443897916644, 0, 0, 1.09861228866811, 0, 0, 2.70805020110221, 0, 2.77258872223978, 1.09861228866811, 0, 0, 1.38629436111989, 0, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.89037175789616, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.77258872223978, 1.38629436111989, 0, 2.94443897916644, 2.77258872223978, 0, 0, 0, 2.77258872223978, 2.89037175789616, 2.83321334405622, 0, 0, 0, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.83321334405622, 0, 2.83321334405622, 2.63905732961526, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0.693147180559945, 0, 0, 0, 0, 0, 3.04452243772342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 1.09861228866811, 0, 2.39789527279837, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 0, 2.07944154167984, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.07944154167984, 0, 2.99573227355399, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 2.94443897916644, 0, 0, 3.04452243772342, 0, 1.94591014905531, 0, 0, 0, 3.04452243772342, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.89037175789616, 0.693147180559945, 0, 2.70805020110221, 0, 0, 0, 3.13549421592915, 0, 0, 0, 0, 0, 3.04452243772342, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.56494935746154, 2.77258872223978, 0, 0, 0, 0, 0, 0, 2.83321334405622, 1.09861228866811, 0, 2.70805020110221, 0, 2.77258872223978, 0, 0, 0, 2.70805020110221, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.77258872223978, 1.94591014905531, 1.94591014905531, 2.77258872223978, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0.693147180559945, 0, 3.17805383034795, 1.6094379124341, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 3.04452243772342, 3.09104245335832, 0, 1.6094379124341, 0, 0, 0, 0, 2.83321334405622, 1.38629436111989, 2.99573227355399, 0, 0, 2.39789527279837, 0, 0, 0, 2.94443897916644, 2.77258872223978, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 3.04452243772342, 1.09861228866811, 1.38629436111989, 2.83321334405622, 0, 0, 2.83321334405622, 2.70805020110221, 0, 0, 2.19722457733622, 2.83321334405622, 2.77258872223978, 0, 2.19722457733622, 0, 0, 0, 2.83321334405622, 2.77258872223978, 2.94443897916644, 1.94591014905531, 0, 0, 0, 0, 0, 2.83321334405622, 0, 2.07944154167984, 0, 0, 0, 1.94591014905531, 0, 2.99573227355399, 2.30258509299405, 0, 0, 0, 3.04452243772342, 2.83321334405622, 2.19722457733622, 1.94591014905531, 2.07944154167984, 3.13549421592915, 0, 0, 1.09861228866811, 3.04452243772342, 2.83321334405622, 2.83321334405622, 0, 2.89037175789616, 0, 0, 0, 0, 2.77258872223978, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.77258872223978, 2.30258509299405, 2.83321334405622, 0, 2.83321334405622, 0, 0, 2.83321334405622, 2.83321334405622, 0, 0, 2.89037175789616, 2.39789527279837, 0, 0, 2.63905732961526, 1.09861228866811, 2.83321334405622, 1.09861228866811, 2.19722457733622, 2.94443897916644, 2.30258509299405, 0, 2.39789527279837, 2.83321334405622, 0, 2.99573227355399, 2.89037175789616, 0, 2.83321334405622, 0, 2.77258872223978, 2.63905732961526, 2.83321334405622, 2.94443897916644, 0, 0, 0, 1.79175946922805, 2.70805020110221, 0, 0, 2.39789527279837, 0, 2.94443897916644, 2.99573227355399, 2.39789527279837, 2.77258872223978, 2.70805020110221, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 1.09861228866811, 3.09104245335832, 0, 0, 0, 0, 2.56494935746154, 2.07944154167984, 0, 0, 0, 1.09861228866811, 2.99573227355399, 0, 2.83321334405622, 2.77258872223978, 0, 2.83321334405622, 0, 0, 2.70805020110221, 0, 0, 2.30258509299405, 2.89037175789616, 0, 2.94443897916644, 0, 0, 2.77258872223978, 0, 2.99573227355399, 0, 0, 0, 0, 1.6094379124341, 1.38629436111989, 0, 2.63905732961526, 0, 2.94443897916644, 2.70805020110221, 0, 0, 2.94443897916644, 0, 2.94443897916644, 2.94443897916644, 2.77258872223978, 2.63905732961526, 2.77258872223978, 2.99573227355399, 2.89037175789616, 2.99573227355399, 3.04452243772342, 1.38629436111989, 2.89037175789616, 2.99573227355399, 3.04452243772342, 2.19722457733622, 3.04452243772342, 2.70805020110221, 0, 3.04452243772342, 2.89037175789616, 2.39789527279837, 1.79175946922805, 0, 2.99573227355399, 0, 0, 0, 0, 0, 0, 0, 2.77258872223978, 0, 0, 2.83321334405622, 0, 0, 1.94591014905531, 2.77258872223978, 2.77258872223978, 2.77258872223978, 0, 2.77258872223978, 2.89037175789616, 0, 0, 2.89037175789616, 2.94443897916644, 2.77258872223978, 2.89037175789616, 0, 2.89037175789616, 2.77258872223978, 0.693147180559945, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 2.30258509299405, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.38629436111989, 0, 1.6094379124341, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.6094379124341, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 1.94591014905531, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 1.79175946922805, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.6094379124341, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 1.09861228866811, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0.693147180559945, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 1.94591014905531, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 2.07944154167984, 0, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 1.94591014905531, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.94591014905531, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.38629436111989, 0, 1.6094379124341, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 1.6094379124341, 0, 1.09861228866811, 1.09861228866811, 1.38629436111989, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.6094379124341, 1.09861228866811, 1.38629436111989, 0, 1.79175946922805, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0.693147180559945, 1.38629436111989, 1.6094379124341, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.79175946922805, 0, 0, 1.09861228866811, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.94591014905531, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 1.94591014905531, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 1.6094379124341, 0, 0, 0, 0, 0.693147180559945, 0, 1.6094379124341, 0, 1.09861228866811, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 2.30258509299405, 1.09861228866811, 0, 0, 0, 0, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 1.09861228866811, 0, 0, 0, 1.38629436111989, 1.6094379124341, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.6094379124341, 1.94591014905531, 1.94591014905531, 0, 1.09861228866811, 0, 0, 1.6094379124341, 0, 0, 0, 2.30258509299405, 0, 0.693147180559945, 1.6094379124341, 0.693147180559945, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0, 1.38629436111989, 0.693147180559945, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 1.09861228866811, 1.09861228866811, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 1.38629436111989, 0, 0, 0.693147180559945, 0, 1.6094379124341, 0, 0, 0, 1.09861228866811, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.6094379124341, 0, 1.09861228866811, 0.693147180559945, 1.09861228866811, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.94591014905531, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0.693147180559945, 0.693147180559945, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 1.6094379124341, 0, 1.38629436111989, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.94591014905531, 0, 1.38629436111989, 0, 1.38629436111989, 0, 0, 1.79175946922805, 0.693147180559945, 0, 0, 0, 0, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 2.19722457733622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 2.07944154167984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 1.38629436111989, 0, 0, 1.94591014905531, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0.693147180559945, 0.693147180559945, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.09861228866811, 2.30258509299405, 0, 0, 1.94591014905531, 0, 0, 0, 1.38629436111989, 1.6094379124341, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 1.38629436111989, 0, 0.693147180559945, 0.693147180559945, 0, 0, 2.07944154167984, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0.693147180559945, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 1.09861228866811, 1.94591014905531, 0.693147180559945, 0, 0, 0, 0, 0, 2.07944154167984, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 1.38629436111989, 1.09861228866811, 0, 0, 0, 1.38629436111989, 1.09861228866811, 0, 1.09861228866811, 0, 1.38629436111989, 0, 0, 0, 1.38629436111989, 1.09861228866811, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 2.07944154167984, 0, 0, 0, 1.38629436111989, 1.09861228866811, 1.09861228866811, 0, 0.693147180559945, 0, 0, 0, 1.09861228866811, 0, 0, 2.19722457733622, 0.693147180559945, 0, 0, 1.6094379124341, 0, 1.09861228866811, 0, 1.09861228866811, 1.38629436111989, 1.09861228866811, 0, 0, 1.09861228866811, 0, 1.09861228866811, 1.09861228866811, 0, 1.38629436111989, 0, 1.79175946922805, 1.6094379124341, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 1.09861228866811, 2.07944154167984, 0, 0.693147180559945, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.94591014905531, 0, 1.09861228866811, 1.79175946922805, 0, 1.79175946922805, 0, 0, 0.693147180559945, 0, 0, 1.09861228866811, 1.38629436111989, 0, 1.94591014905531, 0, 0, 1.09861228866811, 0, 1.09861228866811, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 1.94591014905531, 1.09861228866811, 0, 0, 0, 0, 0, 0, 1.09861228866811, 1.6094379124341, 1.79175946922805, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0.693147180559945, 0.693147180559945, 1.79175946922805, 0, 0.693147180559945, 0, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 0, 1.09861228866811, 0, 0, 0.693147180559945, 1.09861228866811, 0.693147180559945, 0.693147180559945, 0, 1.09861228866811, 1.38629436111989, 0, 0, 1.6094379124341, 0.693147180559945, 1.38629436111989, 0.693147180559945, 0, 0.693147180559945, 1.38629436111989, 2.19722457733622, 2.83321334405622, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.63905732961526, 0, 2.56494935746154, 2.70805020110221, 0, 0, 1.38629436111989, 2.39789527279837, 1.6094379124341, 0, 0, 2.484906649788, 1.09861228866811, 2.83321334405622, 2.484906649788, 2.56494935746154, 2.70805020110221, 2.94443897916644, 2.70805020110221, 0, 0, 2.56494935746154, 1.09861228866811, 0, 0, 2.484906649788, 0, 1.09861228866811, 0, 2.30258509299405, 2.39789527279837, 0, 2.70805020110221, 2.70805020110221, 1.09861228866811, 0, 0, 2.77258872223978, 0, 0, 0.693147180559945, 0, 0, 0, 1.79175946922805, 2.39789527279837, 0, 2.83321334405622, 2.484906649788, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 2.77258872223978, 2.70805020110221, 0, 0, 0, 2.70805020110221, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.484906649788, 0, 0, 2.39789527279837, 0, 1.6094379124341, 1.94591014905531, 0, 2.83321334405622, 0, 2.19722457733622, 2.83321334405622, 0, 0, 0, 0, 0, 2.70805020110221, 2.70805020110221, 0, 2.70805020110221, 2.484906649788, 1.38629436111989, 0, 0, 0, 1.6094379124341, 0, 2.63905732961526, 0, 0, 0, 0, 1.79175946922805, 0, 1.38629436111989, 1.09861228866811, 1.79175946922805, 0, 2.63905732961526, 0, 0, 0, 2.484906649788, 0, 2.56494935746154, 2.63905732961526, 0, 2.39789527279837, 0, 0, 2.83321334405622, 0, 2.56494935746154, 2.19722457733622, 0, 2.70805020110221, 0, 2.484906649788, 2.484906649788, 0, 2.19722457733622, 1.94591014905531, 0, 0, 2.77258872223978, 0, 2.30258509299405, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 1.38629436111989, 0, 0, 0, 2.56494935746154, 0, 0, 2.07944154167984, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0, 2.56494935746154, 0, 0, 0, 0, 2.83321334405622, 2.39789527279837, 0, 0, 0, 0, 2.56494935746154, 0, 2.07944154167984, 1.38629436111989, 2.63905732961526, 2.07944154167984, 0, 1.94591014905531, 0, 2.89037175789616, 2.70805020110221, 2.63905732961526, 0, 0, 2.07944154167984, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.63905732961526, 0, 0, 2.77258872223978, 1.6094379124341, 2.39789527279837, 1.79175946922805, 1.6094379124341, 0, 1.38629436111989, 2.39789527279837, 2.07944154167984, 0, 0, 0, 2.89037175789616, 0, 0, 0, 1.79175946922805, 2.19722457733622, 0, 0, 0.693147180559945, 0, 0.693147180559945, 0, 0, 2.70805020110221, 0, 0, 0, 1.94591014905531, 0, 0, 2.56494935746154, 1.38629436111989, 0, 0, 0, 0, 0, 0, 0, 0, 2.83321334405622, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 0, 0, 0, 2.39789527279837, 0, 0, 2.94443897916644, 1.94591014905531, 0, 0, 0, 0, 0, 2.70805020110221, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 2.94443897916644, 1.79175946922805, 0, 1.79175946922805, 0, 0, 0, 0, 2.77258872223978, 2.484906649788, 0, 0, 0, 0, 0, 2.70805020110221, 2.56494935746154, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.07944154167984, 0, 2.30258509299405, 0, 2.77258872223978, 1.79175946922805, 2.56494935746154, 0, 2.89037175789616, 0, 0, 0, 0, 1.09861228866811, 0, 2.70805020110221, 1.6094379124341, 0, 2.484906649788, 0, 1.09861228866811, 2.484906649788, 0, 0, 0, 0.693147180559945, 0, 2.484906649788, 0, 1.6094379124341, 0, 0, 2.77258872223978, 0, 2.83321334405622, 2.83321334405622, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 2.63905732961526, 0, 0, 0, 2.56494935746154, 1.79175946922805, 0, 1.94591014905531, 2.19722457733622, 2.56494935746154, 1.09861228866811, 0, 0, 0, 0, 2.83321334405622, 0, 0, 1.79175946922805, 0, 0, 0, 0, 2.56494935746154, 0, 2.70805020110221, 0, 2.07944154167984, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 2.89037175789616, 0, 0, 0, 2.56494935746154, 2.63905732961526, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 2.484906649788, 0, 2.83321334405622, 0, 2.56494935746154, 1.79175946922805, 0, 0, 2.77258872223978, 0, 0, 2.70805020110221, 0, 0, 2.30258509299405, 0, 0, 1.6094379124341, 1.79175946922805, 0, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 2.63905732961526, 2.63905732961526, 2.56494935746154, 2.70805020110221, 0, 2.70805020110221, 0, 2.63905732961526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 0, 2.77258872223978, 0, 1.09861228866811, 0, 0, 0, 2.94443897916644, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 2.83321334405622, 0, 0, 2.56494935746154, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 1.38629436111989, 0, 0, 1.6094379124341, 0, 0, 2.83321334405622, 2.83321334405622, 2.56494935746154, 0, 2.70805020110221, 0, 0, 0, 1.6094379124341, 0, 2.56494935746154, 2.56494935746154, 0, 1.94591014905531, 2.77258872223978, 0, 0, 0, 2.89037175789616, 0, 0, 2.83321334405622, 1.09861228866811, 0, 2.63905732961526, 1.6094379124341, 1.79175946922805, 0, 1.38629436111989, 0, 2.56494935746154, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 0, 1.79175946922805, 0, 2.56494935746154, 2.89037175789616, 0, 2.30258509299405, 2.19722457733622, 0, 2.56494935746154, 0, 2.99573227355399, 0, 0, 0, 2.39789527279837, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 0, 2.39789527279837, 0, 2.94443897916644, 0, 2.89037175789616, 0, 2.63905732961526, 1.94591014905531, 0, 2.77258872223978, 2.19722457733622, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 2.77258872223978, 2.89037175789616, 0, 0, 2.30258509299405, 2.07944154167984, 0, 0, 0, 2.30258509299405, 0, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 0, 0, 0, 0, 2.70805020110221, 2.39789527279837, 0, 2.484906649788, 1.09861228866811, 2.70805020110221, 0, 0.693147180559945, 0, 2.77258872223978, 2.77258872223978, 0, 2.70805020110221, 0, 2.56494935746154, 0, 2.19722457733622, 2.63905732961526, 0, 2.484906649788, 0, 0, 2.70805020110221, 0, 0, 0, 0, 0, 0, 2.94443897916644, 2.83321334405622, 2.70805020110221, 0, 0, 2.89037175789616, 2.30258509299405, 0, 0, 2.07944154167984, 0, 1.38629436111989, 0, 2.56494935746154, 0, 2.56494935746154, 2.19722457733622, 2.89037175789616, 1.94591014905531, 2.484906649788, 1.6094379124341, 0, 2.19722457733622, 0, 0, 0, 0, 0, 2.63905732961526, 2.484906649788, 1.09861228866811, 2.63905732961526, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.56494935746154, 1.09861228866811, 2.63905732961526, 0, 2.19722457733622, 2.70805020110221, 2.63905732961526, 1.38629436111989, 2.70805020110221, 2.484906649788, 2.70805020110221, 1.94591014905531, 0, 2.70805020110221, 0, 0, 0, 0, 0, 1.94591014905531, 2.83321334405622, 1.94591014905531, 2.63905732961526, 0, 0, 0, 2.484906649788, 2.70805020110221, 2.63905732961526, 0.693147180559945, 0, 2.89037175789616, 2.07944154167984, 0, 0, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 2.83321334405622, 0, 0, 0, 2.70805020110221, 0, 0, 2.56494935746154, 1.79175946922805, 0, 1.94591014905531, 2.30258509299405, 2.56494935746154, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 1.94591014905531, 0, 2.94443897916644, 1.6094379124341, 1.09861228866811, 2.56494935746154, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 0, 1.09861228866811, 0, 0, 0, 0, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.30258509299405, 1.6094379124341, 0, 0, 0, 2.94443897916644, 1.38629436111989, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 2.83321334405622, 1.6094379124341, 0, 0, 0.693147180559945, 1.6094379124341, 0, 0, 0, 2.30258509299405, 2.63905732961526, 0, 2.484906649788, 0, 0, 0, 2.70805020110221, 0, 2.89037175789616, 0, 2.30258509299405, 2.56494935746154, 2.70805020110221, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 2.63905732961526, 2.63905732961526, 0, 0, 0, 2.83321334405622, 2.63905732961526, 0, 2.70805020110221, 2.19722457733622, 0, 0, 2.70805020110221, 0, 0, 0, 2.07944154167984, 1.09861228866811, 2.39789527279837, 2.30258509299405, 0, 1.09861228866811, 0, 2.77258872223978, 0, 0, 1.79175946922805, 2.70805020110221, 1.94591014905531, 0, 2.83321334405622, 2.70805020110221, 2.77258872223978, 2.63905732961526, 1.38629436111989, 2.77258872223978, 0, 0, 0, 1.6094379124341, 0, 2.70805020110221, 0, 2.94443897916644, 2.63905732961526, 0, 0, 2.83321334405622, 2.56494935746154, 2.63905732961526, 0, 2.39789527279837, 0, 2.63905732961526, 2.63905732961526, 0, 0, 0, 0.693147180559945, 0, 2.56494935746154, 0, 2.83321334405622, 0, 0, 2.19722457733622, 0, 0, 0, 2.94443897916644, 2.63905732961526, 0, 2.70805020110221, 2.484906649788, 0, 0, 3.04452243772342, 0, 2.77258872223978, 0, 0, 0, 2.19722457733622, 2.30258509299405, 0, 0, 2.89037175789616, 2.19722457733622, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.63905732961526, 0, 1.6094379124341, 2.56494935746154, 0, 0, 0, 0, 2.77258872223978, 2.70805020110221, 2.77258872223978, 2.484906649788, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 1.09861228866811, 2.56494935746154, 2.56494935746154, 2.77258872223978, 1.94591014905531, 2.19722457733622, 0, 1.38629436111989, 0, 0, 0, 0, 2.484906649788, 0, 0, 2.484906649788, 2.70805020110221, 0, 0, 0, 2.56494935746154, 2.30258509299405, 0, 0, 0, 0, 0, 2.30258509299405, 0, 1.94591014905531, 0, 2.70805020110221, 0.693147180559945, 1.09861228866811, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 2.07944154167984, 2.63905732961526, 2.56494935746154, 0, 2.70805020110221, 2.39789527279837, 0, 2.484906649788, 2.70805020110221, 2.19722457733622, 0, 1.6094379124341, 0, 2.56494935746154, 1.79175946922805, 2.63905732961526, 0, 0, 0, 2.89037175789616, 1.09861228866811, 0, 2.70805020110221, 0, 2.39789527279837, 0, 0, 1.09861228866811, 0, 0, 0, 0, 1.38629436111989, 0, 2.30258509299405, 0, 1.6094379124341, 2.56494935746154, 0, 2.83321334405622, 2.19722457733622, 1.79175946922805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.19722457733622, 1.38629436111989, 0, 0, 0.693147180559945, 0, 0, 2.63905732961526, 0, 0, 2.63905732961526, 0, 2.83321334405622, 0.693147180559945, 2.77258872223978, 2.70805020110221, 1.09861228866811, 0, 0, 2.56494935746154, 2.77258872223978, 0, 0, 2.77258872223978, 0, 0, 1.94591014905531, 2.89037175789616, 2.70805020110221, 2.63905732961526, 1.09861228866811, 0, 2.19722457733622, 2.39789527279837, 2.56494935746154, 0, 2.83321334405622, 0.693147180559945, 0, 0, 0, 2.63905732961526, 0, 2.39789527279837, 2.83321334405622, 1.6094379124341, 0, 0, 0, 2.56494935746154, 0, 1.79175946922805, 2.56494935746154, 0, 2.30258509299405, 2.83321334405622, 0, 2.77258872223978, 1.94591014905531, 2.63905732961526, 2.94443897916644, 1.09861228866811, 0, 2.89037175789616, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 2.94443897916644, 2.63905732961526, 2.484906649788, 2.83321334405622, 1.38629436111989, 2.83321334405622, 0, 0, 2.56494935746154, 2.484906649788, 0, 2.56494935746154, 0, 2.56494935746154, 1.79175946922805, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 2.484906649788, 2.63905732961526, 2.56494935746154, 0, 1.6094379124341, 0, 2.484906649788, 0, 0, 0, 2.77258872223978, 0, 1.94591014905531, 0.693147180559945, 0, 2.70805020110221, 2.83321334405622, 0, 2.39789527279837, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0, 0, 0, 0.693147180559945, 2.77258872223978, 0, 2.70805020110221, 0, 0, 2.70805020110221, 2.63905732961526, 2.56494935746154, 0, 0, 0, 0, 2.70805020110221, 2.19722457733622, 0, 0, 0, 2.39789527279837, 0, 2.30258509299405, 0, 0, 0, 2.19722457733622, 2.484906649788, 2.39789527279837, 1.38629436111989, 2.56494935746154, 0, 2.07944154167984, 0, 2.63905732961526, 0, 0, 2.70805020110221, 0, 0, 1.09861228866811, 0, 0, 0, 0, 0, 2.56494935746154, 0, 2.70805020110221, 0, 2.70805020110221, 0, 0, 0, 2.07944154167984, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 1.94591014905531, 2.83321334405622, 0, 2.39789527279837, 0, 0, 0, 2.70805020110221, 0, 0, 0, 2.56494935746154, 0, 2.30258509299405, 0, 2.484906649788, 0, 2.56494935746154, 0, 0, 2.83321334405622, 0, 0, 0, 1.38629436111989, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 1.94591014905531, 0, 2.70805020110221, 0, 0, 2.56494935746154, 2.83321334405622, 2.70805020110221, 1.79175946922805, 1.94591014905531, 0, 0, 2.30258509299405, 1.09861228866811, 0, 2.77258872223978, 0, 1.6094379124341, 0, 0, 2.484906649788, 0, 2.77258872223978, 2.484906649788, 1.6094379124341, 0, 2.70805020110221, 1.09861228866811, 0, 2.19722457733622, 0, 2.63905732961526, 1.38629436111989, 2.94443897916644, 0, 0, 1.09861228866811, 0, 0, 2.63905732961526, 0, 2.70805020110221, 1.09861228866811, 0, 0, 1.38629436111989, 0, 2.70805020110221, 1.79175946922805, 1.6094379124341, 0, 2.77258872223978, 0, 0, 0, 0, 0, 1.94591014905531, 0, 2.56494935746154, 0, 2.56494935746154, 1.38629436111989, 0, 2.56494935746154, 2.63905732961526, 0, 0, 0, 2.70805020110221, 2.83321334405622, 2.70805020110221, 0, 0, 0, 0, 1.94591014905531, 0, 2.70805020110221, 2.63905732961526, 0, 0, 2.70805020110221, 0, 2.77258872223978, 2.63905732961526, 0, 0, 0, 0, 0, 2.19722457733622, 0, 0.693147180559945, 0, 0, 0, 0, 0, 2.89037175789616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 1.09861228866811, 0, 2.19722457733622, 0, 0, 0, 0, 2.30258509299405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.70805020110221, 0, 2.07944154167984, 1.09861228866811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.94591014905531, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.39789527279837, 1.94591014905531, 0, 0, 0, 0, 0, 0, 0, 2.63905732961526, 1.94591014905531, 0, 2.19722457733622, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 2.484906649788, 0, 0, 0, 2.484906649788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.693147180559945, 0, 0, 0, 0, 0, 0, 0, 1.79175946922805, 2.70805020110221, 0, 0, 2.56494935746154, 0, 1.94591014905531, 0, 0, 0, 2.77258872223978, 0, 0, 0, 0, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.83321334405622, 0.693147180559945, 0, 2.56494935746154, 0, 0, 0, 2.94443897916644, 0, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 2.56494935746154, 0, 0, 0, 2.484906649788, 2.63905732961526, 0, 0, 0, 0, 0, 0, 2.63905732961526, 1.09861228866811, 0, 2.39789527279837, 0, 2.484906649788, 0, 0, 0, 2.39789527279837, 0, 0, 0, 0, 1.09861228866811, 0, 0, 0, 2.56494935746154, 1.6094379124341, 1.94591014905531, 2.484906649788, 0, 0, 0, 0, 0, 1.94591014905531, 0, 0.693147180559945, 0, 2.70805020110221, 1.6094379124341, 0, 0, 0, 1.38629436111989, 0, 0, 0, 0, 0, 2.19722457733622, 1.09861228866811, 2.70805020110221, 2.77258872223978, 0, 1.6094379124341, 0, 0, 0, 0, 2.63905732961526, 0.693147180559945, 2.30258509299405, 0, 0, 1.6094379124341, 0, 0, 0, 2.70805020110221, 2.30258509299405, 0, 0, 0, 0, 0, 1.6094379124341, 0, 0, 0, 0, 2.77258872223978, 1.09861228866811, 1.09861228866811, 2.77258872223978, 0, 0, 2.07944154167984, 2.63905732961526, 0, 0, 2.19722457733622, 2.63905732961526, 2.56494935746154, 0, 2.07944154167984, 0, 0, 0, 2.77258872223978, 2.484906649788, 2.484906649788, 1.79175946922805, 0, 0, 0, 0, 0, 2.07944154167984, 0, 1.94591014905531, 0, 0, 0, 1.6094379124341, 0, 2.63905732961526, 2.07944154167984, 0, 0, 0, 2.77258872223978, 2.63905732961526, 2.19722457733622, 1.6094379124341, 2.07944154167984, 2.89037175789616, 0, 0, 1.09861228866811, 2.63905732961526, 2.63905732961526, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 0, 2.39789527279837, 0, 0, 0, 1.94591014905531, 0, 0, 0, 2.56494935746154, 2.07944154167984, 2.63905732961526, 0, 2.70805020110221, 0, 0, 2.77258872223978, 2.70805020110221, 0, 0, 1.94591014905531, 2.19722457733622, 0, 0, 2.19722457733622, 1.09861228866811, 2.63905732961526, 1.09861228866811, 1.94591014905531, 2.56494935746154, 2.07944154167984, 0, 2.39789527279837, 2.63905732961526, 0, 2.83321334405622, 2.63905732961526, 0, 2.39789527279837, 0, 2.19722457733622, 2.19722457733622, 2.77258872223978, 2.39789527279837, 0, 0, 0, 1.6094379124341, 2.70805020110221, 0, 0, 2.39789527279837, 0, 2.63905732961526, 2.77258872223978, 2.39789527279837, 2.56494935746154, 2.07944154167984, 0, 1.38629436111989, 0, 0, 1.94591014905531, 0, 1.09861228866811, 2.63905732961526, 0, 0, 0, 0, 2.56494935746154, 1.79175946922805, 0, 0, 0, 1.09861228866811, 2.484906649788, 0, 2.63905732961526, 2.30258509299405, 0, 2.484906649788, 0, 0, 2.56494935746154, 0, 0, 2.07944154167984, 2.56494935746154, 0, 2.39789527279837, 0, 0, 2.63905732961526, 0, 2.77258872223978, 0, 0, 0, 0, 1.38629436111989, 1.38629436111989, 0, 2.484906649788, 0, 2.484906649788, 2.56494935746154, 0, 0, 2.77258872223978, 0, 2.77258872223978, 2.77258872223978, 2.484906649788, 2.19722457733622, 2.30258509299405, 2.99573227355399, 2.70805020110221, 2.99573227355399, 2.94443897916644, 1.09861228866811, 2.70805020110221, 2.99573227355399, 2.94443897916644, 2.07944154167984, 2.94443897916644, 2.30258509299405, 0, 2.94443897916644, 2.70805020110221, 2.07944154167984, 1.79175946922805, 0, 2.83321334405622, 0, 0, 0, 0, 0, 0, 0, 2.30258509299405, 0, 0, 2.63905732961526, 0, 0, 1.79175946922805, 2.63905732961526, 2.70805020110221, 2.70805020110221, 0, 2.56494935746154, 2.56494935746154, 0, 0, 2.484906649788, 2.70805020110221, 2.56494935746154, 2.77258872223978, 0, 2.70805020110221, 2.56494935746154, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000335630401156281, 0.951705158136462, 4.54226354033032e-05, 7.88932482720022e-06, 4.54226354033032e-05, 0.000158461325115751, 0.00673794699908547, 6.82901703136567e-08, 0.951705158136462, 0.000553084370147834, 4.54226354033032e-05, 0.00674131681496878, 0.367879441171442, 0.0235177458560091, 4.54226354033032e-05, 3.232257288085e-08, 9.85447301171309e-05, 2.75639995719122e-05, 7.19413303032538e-09, 0.00865169520312063, 0.00193045413622771, 8.48182352464692e-05, 0.00150419110053529, 6.82901703136567e-08, 0.000581441612193756, 6.52414922649936e-06, 0.0142713678092802, 3.728516964574e-06, 1.85631929025986e-07, 1.12816864621722e-07, 9.61116520613947e-05, 0.0111089965382423, 3.06208375824484e-07, 0.0862935864993705, 2.17352642664681e-10, 3.7751345442791e-11, 1.30072976540676e-05, 0.0192547017753869, 7.54153290924762e-05, 0.000335630401156281, 4.54226354033032e-05, 0.00318278079650967, 5.05610109124981e-07, 1.39227071606402e-11, 4.54226354033032e-05, 1.13999185304436e-12, 2.75502210170519e-05, 9.61116520613947e-05, 0.00673794699908547, 8.31944587421534e-07, 4.4224387703136e-14, 2.37621897384794e-06, 6.14421235332821e-06, 0.0302124858893318, 2.16791491497368e-09, 0.000158461325115751, 0.0142713678092802, 1.37164473732573e-06, 3.92786354548104e-07, 2.75364493497472e-05, 0.000335462627902512, 0.951705158136462, 2.39550880016636e-07, 0.951705158136462, 5.82946637308688e-05, 1.18304976507983e-07, 3.3999673782591e-09, 0.018324798998015, 2.90377193170525e-06, 0.00318278079650967, 0.000336302333667127, 8.31944587421534e-07, 0.00674131681496878, 0.0235177458560091, 0.00117087962079117, 0.00150343919297757, 0.0024849568096677, 0.0820849986238988, 1.37507813913307e-06, 5.60279643753727e-09, 0.951705158136462, 0.000203977676302021, 1.1338236150893e-07, 6.82901703136567e-08, 3.73598146051093e-06, 0.00150343919297757, 1.13999185304436e-12, 0.000203671939147759, 0.000553360981479978, 2.38236966750182e-07, 0.999500124979169, 1.69189792261513e-10, 6.04012957765189e-05, 6.39441827292288e-05, 0.0450492023935578, 2.29087999933294e-11, 0.00708340892905212, 0.105399224561864, 0.00117381048189304, 4.54226354033032e-05, 1.76122670539221e-06, 2.63974083545825e-08, 0.000335462627902512, 3.92786354548104e-07, 4.7727633936802e-05, 8.33610141595369e-07, 0.000554468810903085, 5.04347662567888e-07, 4.14200820522303e-08, 0.00708340892905212, 1.12535174719259e-07, 2.9023204086504e-06, 0.00318437258482184, 3.72665317207867e-06, 3.72665317207867e-06, 1.14056199149361e-12, 2.14454083165892e-05, 8.76424821944364e-08, 4.54226354033032e-05, 3.72665317207867e-06, 3.728516964574e-06, 3.0605530990624e-07, 0.000335630401156281, 0.60683400087146, 0.00193045413622771, 3.38949432619692e-08, 0.00673794699908547, 3.72665317207867e-06, 0.000158461325115751, 0.00673794699908547, 0.000553084370147834, 0.00247999186265036, 1.30072976540676e-05, 0.0842050822745664, 1.30072976540676e-05, 3.3999673782591e-09, 2.9023204086504e-06, 0.28650479686019, 1.06823799552505e-06, 0.951705158136462, 9.61116520613947e-05, 3.72665317207867e-06, 0.00708340892905212, 2.14454083165892e-05, 0.0550232200564072, 8.48182352464692e-05, 7.48892651606827e-05, 1.06494746038243e-05, 0.000336638804208025, 0.0111368037741499, 0.0497870683678639, 0.951705158136462, 1.26704992151533e-14, 0.135335283236613, 6.47919096155908e-07, 0.223241753124423, 0.0821260513855459, 0.000912794303613072, 4.7727633936802e-05, 3.92982796831856e-07, 1.45999939733294e-11, 0.0820849986238988, 3.0605530990624e-07, 1.37095908638408e-06, 0.0183156388887342, 0.999500124979169, 2.06218445693692e-09, 8.33610141595369e-07, 0.0820849986238988, 7.17555954486746e-08, 8.48182352464692e-05, 1.44124966182967e-06, 0.0820849986238988, 0.951705158136462, 0.038774207831722, 0.0111145524253675, 0.000581441612193756, 9.63522317909083e-05, 0.00708340892905212, 1.30072976540676e-05, 4.53999297624849e-05, 0.00673794699908547, 1.18304976507983e-07, 0.472366552741015, 0.00708340892905212, 0.00674131681496878, 0.0001588579740331, 3.21586267857925e-07, 0.951705158136462, 0.0820849986238988, 2.14454083165892e-05, 0.0450492023935578, 3.72665317207867e-06, 0.00673794699908547, 4.53999297624849e-05, 0.00674131681496878, 1.60603086990016e-09, 0.951705158136462, 0.0820849986238988, 0.0111145524253675, 0.0821260513855459, 0.00673794699908547, 0.018324798998015, 1.85631929025986e-07, 9.73620031300957e-10, 4.53999297624849e-05, 1.44124966182967e-06, 9.61597199033844e-05, 0.0820849986238988, 0.000261258557301668, 0.28650479686019, 3.21586267857925e-07, 0.00708340892905212, 0.00708340892905212, 7.21214086331336e-09, 7.86895652717947e-05, 0.0235177458560091, 0.000158461325115751, 3.7751345442791e-11, 0.951705158136462, 7.60598945374397e-11, 2.06218445693692e-09, 0.951705158136462, 0.0820849986238988, 0.0301973834223185, 0.951229424500714, 3.0605530990624e-07, 0.000553084370147834, 8.27654379316424e-05, 0.122456428252982, 2.06218445693692e-09, 5.90530399894404e-10, 0.951705158136462, 4.35219686455574e-08, 0.000261389219243081, 1.12816864621722e-07, 0.00708340892905212, 0.951705158136462, 2.16791491497368e-09, 0.0639278612067076, 0.00674131681496878, 0.000158461325115751, 0.000911881965554516, 0.000430742540575688, 3.05902320501826e-07, 2.06115362243856e-09, 0.951229424500714, 0.0111145524253675, 0.00319234347574604, 0.105399224561864, 0.0116785669703954, 0.000335630401156281, 4.53999297624849e-05, 1.01453001410843e-05, 0.951705158136462, 0.135335283236613, 1.38948895731788e-11, 0.951705158136462, 0.000553084370147834, 5.31844381163554e-08, 3.72665317207867e-06, 0.0499116917531071, 0.0820849986238988, 1.30072976540676e-05, 0.0183156388887342, 1.12535174719259e-07, 5.31578525442442e-08, 4.53999297624849e-05, 0.00673794699908547, 0.223241753124423, 0.0235177458560091, 2.38236966750182e-07, 0.000553084370147834, 0.000710529564823566, 0.0202419114458044, 0.368800290356243, 3.05902320501826e-07, 0.00673794699908547, 2.1668312284604e-09, 6.82901703136567e-08, 0.999500124979169, 4.54226354033032e-05, 0.367879441171442, 0.00673794699908547, 0.999500124979169, 0.128734903587804, 2.79086317565699e-10, 0.0235295076691454, 3.72665317207867e-06, 0.0820849986238988, 0.951705158136462, 0.951705158136462, 0.778800783071405, 0.368063426884623, 0.0820849986238988, 0.0111145524253675, 2.28973484564555e-11, 0.00708340892905212, 4.53999297624849e-05, 0.135402967797961, 0.0550232200564072, 1.30072976540676e-05, 0.0820849986238988, 4.53999297624849e-05, 0.951705158136462, 0.0183156388887342, 3.72665317207867e-06, 8.76424821944364e-08, 0.28650479686019, 0.00673794699908547, 9.61116520613947e-05, 2.38236966750182e-07, 0.00674131681496878, 1.3887943864964e-11, 2.51099915574398e-08, 8.27654379316424e-05, 0.00409086025396955, 0.60683400087146, 3.22418673725673e-08, 2.51099915574398e-08, 0.368800290356243, 0.778800783071405, 0.00673794699908547, 0.0301973834223185, 0.00202943063629573, 0.00193045413622771, 0.951705158136462, 0.0183156388887342, 0.00763509421885996, 0.995012479192682, 0.00673794699908547, 7.19413303032538e-09, 0.367879441171442, 0.00682269993889683, 3.72665317207867e-06, 0.0301973834223185, 0.00673794699908547, 2.06115362243856e-09, 0.0907179532894125, 0.951705158136462, 0.135335283236613, 3.92786354548104e-07, 0.00150343919297757, 1.85539136261598e-07, 0.0183156388887342, 0.000553084370147834, 0.00674131681496878, 0.135335283236613, 0.0235177458560091, 0.000911881965554516, 0.0820849986238988, 4.45085250041942e-07, 0.00673794699908547, 0.0247235264703394, 0.00119393584095384, 0.00673794699908547, 0.00193045413622771, 1.06770401003478e-06, 0.951705158136462, 0.0235177458560091, 7.48892651606827e-05, 0.000553360981479978, 0.0235177458560091, 0.951229424500714, 0.00674131681496878, 4.54226354033032e-05, 0.000553360981479978, 4.35219686455574e-08, 0.00708340892905212, 0.951705158136462, 0.0235177458560091, 0.00247875217666636, 9.3785527959639e-05, 2.51099915574398e-08, 0.000553084370147834, 0.00012365687067909, 5.55951324165015e-06, 0.60683400087146, 0.0820849986238988, 3.3999673782591e-09, 0.00865169520312063, 1.76475268360589e-06, 0.0235177458560091, 0.472366552741015, 0.000261258557301668, 0.0821260513855459, 8.69654190944029e-05, 0.00673794699908547, 0.472366552741015, 0.223241753124423, 0.000553084370147834, 0.0287246396542394, 4.53999297624849e-05, 0.0111089965382423, 0.000553084370147834, 0.951705158136462, 0.951705158136462, 3.21586267857925e-07, 0.22313016014843, 0.951705158136462, 0.999500124979169, 0.951705158136462, 0.000129737160045754, 0.0235177458560091, 0.0301973834223185, 0.00674131681496878, 0.00674131681496878, 0.000158461325115751, 2.06115362243856e-09, 0.000553084370147834, 0.0111089965382423, 0.00247875217666636, 8.31528719103568e-07, 0.192049908620754, 0.0111145524253675, 0.00318278079650967, 0.00150343919297757, 0.62188505646502, 0.951705158136462, 0.951705158136462, 0.951705158136462, 2.51099915574398e-08, 3.728516964574e-06, 4.53999297624849e-05, 1.85539136261598e-07, 4.78511739212901e-06, 1.13411309337498e-10, 1.76034631215617e-06, 0.0116785669703954, 0.951705158136462, 1.08700419238355e-05, 3.73224734641864e-06, 3.728516964574e-06, 3.72665317207867e-06, 1.3887943864964e-11, 0.00673794699908547, 0.951229424500714, 3.21586267857925e-07, 4.13993771878517e-08, 0.951705158136462, 0.60683400087146, 0.0820849986238988, 0.28650479686019, 0.00674131681496878, 0.999500124979169, 4.08168771272591e-06, 0.0820849986238988, 4.53999297624849e-05, 0.951705158136462, 9.61116520613947e-05, 0.905289949868508, 8.76424821944364e-08, 0.00193045413622771, 7.48518298877006e-05, 0.000553084370147834, 0.00193045413622771, 1.01351599119028e-05, 0.951705158136462, 0.951705158136462, 2.06115362243856e-09, 4.7727633936802e-05, 0.135335283236613, 0.0235177458560091, 7.87289198922657e-05, 0.00675819119118774, 3.7303816891986e-06, 3.21586267857925e-07, 1.30072976540676e-05, 0.368063426884623, 0.00408677143846407, 4.53999297624849e-05, 3.91772276602433e-06, 0.00193045413622771, 0.951229424500714, 0.0497870683678639, 0.00012347152441752, 0.778800783071405, 0.0111089965382423, 0.951705158136462, 0.0820849986238988, 0.00318278079650967, 3.91772276602433e-06, 0.0820849986238988, 3.20916429164499e-06, 0.951229424500714, 0.0183156388887342, 0.135335283236613, 0.00673794699908547, 1.38163259107954e-09, 0.778800783071405, 0.00193045413622771, 0.0821260513855459, 0.00193528630926782, 0.000335630401156281, 0.00150343919297757, 0.951705158136462, 0.0111145524253675, 0.00379147558214861, 1.44498024610924e-07, 4.54226354033032e-05, 0.000335462627902512, 9.61597199033844e-05, 0.000553084370147834, 0.0235177458560091, 4.53999297624849e-05, 0.00273944481876837, 4.54226354033032e-05, 3.72665317207867e-06, 0.00708340892905212, 0.000553084370147834, 0.0192547017753869, 2.06218445693692e-09, 0.0498119681264688, 2.75364493497472e-05, 0.00980855808900089, 0.00708340892905212, 0.000452827182886797, 0.000553360981479978, 0.000203570128632935, 0.00247875217666636, 5.82946637308688e-05, 5.90530399894404e-10, 4.53999297624849e-05, 3.05902320501826e-07, 0.0317456363780679, 3.05902320501826e-07, 0.000581441612193756, 0.000553084370147834, 0.00408677143846407, 0.00708340892905212, 1.3020311457539e-05, 0.00674131681496878, 0.0116785669703954, 5.60279643753727e-09, 0.000553360981479978, 0.49658530379141, 0.00247875217666636, 0.000581441612193756, 0.00674131681496878, 2.06115362243856e-09, 0.999500124979169, 0.999500124979169, 4.84736870627026e-11, 0.00708340892905212, 2.64789725660542e-09, 0.000158461325115751, 0.0820849986238988, 3.05902320501826e-07, 2.06218445693692e-09, 0.608048883350721, 0.0523397059484324, 0.0820849986238988, 8.29381916075737e-06, 2.51225496924906e-08, 0.0273237224472926, 0.000203468369010644, 0.951705158136462, 8.76424821944364e-08, 0.000911881965554516, 0.999500124979169, 0.000623912764405548, 2.06218445693692e-09, 0.00865169520312063, 1.45999939733294e-11, 0.105399224561864, 0.00193045413622771, 0.015803876830947, 0.000553084370147834, 0.951705158136462, 4.54226354033032e-05, 9.61116520613947e-05, 4.11001001387137e-05, 5.04599899453138e-07, 1.67100537287014e-05, 0.0111145524253675, 8.74162108200159e-07, 0.000553084370147834, 0.951705158136462, 0.0821260513855459, 0.0235177458560091, 0.000553360981479978, 1.06770401003478e-06, 3.91772276602433e-06, 0.951705158136462, 5.01746820561753e-05, 3.05902320501826e-07, 0.00388745724347613, 0.00673794699908547, 1.25015286638674e-09, 0.000553084370147834, 3.05902320501826e-07, 0.00673794699908547, 0.0497870683678639, 0.00351751677491213, 0.000430742540575688, 0.0111089965382423, 0.00012340980408668, 0.00674131681496878, 0.22313016014843, 6.32089927196706e-16, 1.06770401003478e-06, 0.00865602213236437, 0.951705158136462, 1.13999185304436e-12, 0.951705158136462, 2.75364493497472e-05, 0.000129737160045754, 0.0183156388887342, 0.000430742540575688, 0.000553084370147834, 2.89482732982116e-05, 2.79086317565699e-10, 2.51225496924906e-08, 4.53999297624849e-05, 0.000553084370147834, 0.951705158136462, 0.00673794699908547, 2.64657363890912e-09, 0.60683400087146, 0.00193045413622771, 2.8962751053998e-05, 0.60683400087146, 0.999500124979169, 6.91785817143775e-13, 0.0497870683678639, 0.135402967797961, 0.000158461325115751, 1.01402287589649e-05, 0.00012340980408668, 0.999500124979169, 0.00247875217666636, 0.0820849986238988, 0.000710174388842549, 0.608048883350721, 3.21586267857925e-07, 6.9144001069402e-13, 0.000336302333667127, 0.0822904678499759, 0.951705158136462, 0.000352662164628256, 0.0820849986238988, 6.9144001069402e-13, 1.14570608598729e-12, 0.0183156388887342, 0.000553360981479978, 1.69274408309893e-10, 0.018324798998015, 1.12235085697607e-05, 8.99376602902882e-18, 9.14242314781733e-05, 4.53999297624849e-05, 4.53999297624849e-05, 1.67017007902457e-05, 2.51728450704886e-08, 1.30072976540676e-05, 0.951705158136462, 0.00673794699908547, 0.999500124979169, 6.82901703136567e-08, 0.0639278612067076, 0.00673794699908547, 3.72665317207867e-06, 0.00012340980408668, 0.0016623882595398, 0.999500124979169, 0.0111145524253675, 6.22725747336699e-11, 0.951705158136462, 0.0820849986238988, 2.06115362243856e-09, 0.00674131681496878, 0.00012347152441752, 1.4577956484797e-05, 8.31528719103568e-07, 6.47595217584221e-07, 0.0192547017753869, 0.00708340892905212, 3.86038082117729e-09, 6.14728522765943e-06, 0.000158461325115751, 3.08283901313868e-10, 0.000911881965554516, 0.000912338020541539, 0.00674131681496878, 4.7727633936802e-05, 0.0183156388887342, 0.951705158136462, 4.53999297624849e-05, 9.61116520613947e-05, 1.69274408309893e-10, 0.0821260513855459, 2.26145985427281e-06, 0.000581441612193756, 0.000158461325115751, 0.000553084370147834, 0.0820849986238988, 0.951229424500714, 0.60683400087146, 1.1259145637586e-07, 5.84405827129242e-05, 0.0183156388887342, 1.84582339957806e-05, 0.951705158136462, 2.75364493497472e-05, 0.000553084370147834, 4.83485399020988e-10, 0.951705158136462, 2.04097057132405e-05, 1.67100537287014e-05, 4.54226354033032e-05, 0.951705158136462, 0.60683400087146, 0.00369786371648293, 0.0111145524253675, 0.0183156388887342, 5.5739036926946e-07, 0.000336302333667127, 1.18304976507983e-07, 0.606530659712633, 0.00674131681496878, 4.79469720353139e-06, 0.060810062625218, 4.13993771878517e-08, 0.00150419110053529, 0.951705158136462, 0.000553084370147834, 0.0183431329624674, 0.951705158136462, 3.05902320501826e-07, 1.0788017451298e-10, 0.00674131681496878, 2.75502210170519e-05, 0.368063426884623, 0.0183156388887342, 0.00674806150356599, 1.67017007902457e-05, 2.51099915574398e-08, 0.000203570128632935, 0.00673794699908547, 4.54680807575966e-05, 6.91785817143775e-13, 0.0111089965382423, 1.12535174719259e-07, 0.000166585810987634, 2.06115362243856e-09, 2.89482732982116e-05, 2.51099915574398e-08, 0.00865169520312063, 0.951705158136462, 4.53999297624849e-05, 1.76034631215617e-06, 0.951705158136462, 0.000553360981479978, 4.7727633936802e-05, 0.00193045413622771, 0.0235177458560091, 0.951705158136462, 0.00674131681496878, 0.000553084370147834, 0.951705158136462, 1.69274408309893e-10, 0.00012340980408668, 2.06115362243856e-09, 3.728516964574e-06, 4.7727633936802e-05, 4.4224387703136e-14, 0.951229424500714, 0.951705158136462, 2.26032940698105e-06, 1.76034631215617e-06, 0.00150419110053529, 0.0820849986238988, 1.67031220484403e-06, 2.94007773928447e-11, 0.000193545099558094, 0.0223707718561656, 0.606530659712633, 0.0820849986238988, 0.00158052216873622, 0.999500124979169, 0.951229424500714, 2.51099915574398e-08, 0.0820849986238988, 0.000274653569972143, 3.73598146051093e-06, 4.35219686455574e-08, 4.53999297624849e-05, 0.000335462627902512, 0.0820849986238988, 2.64657363890912e-09, 1.13999185304436e-12, 4.24835425529159e-18, 3.97896253583724e-12, 0.000158461325115751, 4.54226354033032e-05, 2.51225496924906e-08, 0.0820849986238988, 6.14728522765943e-06, 5.13513538884332e-13, 0.00012340980408668, 0.951705158136462, 2.08796791164593e-14, 0.0116785669703954, 2.1668312284604e-09, 8.72341297851823e-06, 0.000231947385188233, 0.038774207831722, 3.21586267857925e-07, 0.951705158136462, 3.06694129456356e-08, 0.999500124979169, 0.0820849986238988, 0.951705158136462, 0.951705158136462, 3.728516964574e-06, 0.000158461325115751, 0.951705158136462, 0.00150419110053529, 0.951705158136462, 6.45923285705046e-06, 3.72665317207867e-06, 0.000553084370147834, 0.0235177458560091, 1.1259145637586e-07, 3.73224734641864e-06, 8.27240655566322e-05, 3.05902320501826e-07, 4.54226354033032e-05, 0.000326036897658743, 0.000111665808490115, 3.05902320501826e-07, 0.00429630469075234, 0.00193045413622771, 0.149718262651102, 2.06115362243856e-09, 3.10036893570814e-12, 0.951705158136462, 0.018324798998015, 0.00247999186265036, 0.00673794699908547, 0.951705158136462, 7.68504624785534e-15, 2.06218445693692e-09, 3.21586267857925e-07, 0.000553084370147834, 2.37859638132741e-06, 8.31944587421534e-07, 0.000553084370147834, 2.51099915574398e-08, 0.0235177458560091, 0.951705158136462, 0.951705158136462, 3.728516964574e-06, 4.53999297624849e-05, 0.00673794699908547, 0.0111089965382423, 7.19413303032538e-09, 0.951705158136462, 3.72665317207867e-06, 0.951705158136462, 9.61116520613947e-05, 2.54493779821181e-13, 0.951705158136462, 1.3887943864964e-11, 0.00474815099941148, 3.05902320501826e-07, 0.000335630401156281, 0.105399224561864, 3.728516964574e-06, 8.31944587421534e-07, 9.66581709718793e-07, 0.00865169520312063, 0.606530659712633, 5.60559853622232e-09, 1.06770401003478e-06, 0.000710174388842549, 1.06770401003478e-06, 0.951705158136462, 4.53999297624849e-05, 2.93248718029625e-10, 5.89005795366149e-09, 0.951705158136462, 2.51099915574398e-08, 0.00012340980408668, 5.87335173528082e-05, 1.52299797447126e-08, 1.3887943864964e-11, 8.71840251166509e-11, 0.951705158136462, 0.00708340892905212, 5.19154672958423e-18, 2.26598729991786e-06, 1.06770401003478e-06, 0.00673794699908547, 0.00673794699908547, 0.951705158136462, 3.05902320501826e-07, 0.00193045413622771, 4.54226354033032e-05, 4.79230045416691e-06, 3.73224734641864e-06, 0.000158461325115751, 4.54226354033032e-05, 0.0235177458560091, 1.3887943864964e-11, 4.6588861451034e-15, 1.52375966386498e-08, 3.97896253583724e-12, 0.951705158136462, 0.951705158136462, 2.77437491223006e-05, 3.0605530990624e-07, 0.000553914619234198, 0.00012347152441752, 0.000158540575589276, 3.72665317207867e-06, 3.72665317207867e-06, 2.51225496924906e-08, 4.53999297624849e-05, 0.606530659712633, 1.69613295901142e-10, 2.47980702327164e-08, 2.26032940698105e-06, 3.77702258352171e-11, 0.000452827182886797, 6.45923285705046e-06, 6.84327102221799e-09, 0.951705158136462, 4.3634622529437e-09, 9.6908364580017e-08, 0.000303539138078867, 2.20070198797537e-15, 0.606530659712633, 0.00247875217666636, 1.06494746038243e-05, 1.02670118544665e-10, 2.51099915574398e-08, 0.00055363773115237, 0.00524751839918138, 0.00247875217666636, 0.28650479686019, 1.69274408309893e-10, 1.24370602360287e-07, 2.06115362243856e-09, 0.00408677143846407, 4.47463804640308e-05, 4.14200820522303e-08, 9.484100518449e-19, 0.000553084370147834, 3.10036893570814e-12, 3.05902320501826e-07, 0.0301973834223185, 8.31944587421534e-07, 5.59297059278145e-06, 0.951705158136462, 0.00318278079650967, 1.45999939733294e-11, 7.19413303032538e-09, 1.45999939733294e-11, 0.0183156388887342, 6.44255670343554e-05, 0.00708340892905212, 0.951705158136462, 2.06218445693692e-09, 0.000158540575589276, 0.000335630401156281, 2.26145985427281e-06, 0.000158461325115751, 4.54226354033032e-05, 0.00012340980408668, 4.53999297624849e-05, 1.60108375040087e-08, 2.51099915574398e-08, 8.31944587421534e-07, 0.000934966367416582, 1.14056199149361e-12, 5.31844381163554e-08, 8.31944587421534e-07, 2.86251858054939e-20, 8.42346375446865e-12, 7.88932482720022e-06, 3.3999673782591e-09, 2.79225895616086e-10, 8.88119413774578e-11, 0.951705158136462, 3.0605530990624e-07, 6.14728522765943e-06, 3.05902320501826e-07, 0.00408677143846407, 3.0605530990624e-07, 0.000553084370147834, 5.61682095196972e-09, 1.17694896249317e-05, 0.00708340892905212, 0.951705158136462, 3.94822391865094e-09, 1.13999185304436e-12, 3.728516964574e-06, 0.000123718714574115, 1.54358280167703e-13, 0.000203570128632935, 0.000148711852531221, 4.35219686455574e-08, 0.0183156388887342, 0.000261258557301668, 0.00150343919297757, 3.69975217229624e-09, 0.000123718714574115, 4.60135548131939e-10, 1.3887943864964e-11, 1.02618796317019e-10, 0.000175126848157658, 1.67017007902457e-05, 4.78511739212901e-06, 3.728516964574e-06, 2.30564736129533e-16, 3.05902320501826e-07, 1.3887943864964e-11, 5.04599899453138e-07, 4.53999297624849e-05, 3.22069009225222e-07, 0.000335462627902512, 1.01351599119028e-05, 0.000554468810903085, 0.286648085077689, 0.00451658094261267, 0.00674131681496878, 1.01351599119028e-05, 7.8932704759438e-06, 0.000500451433440611, 6.62838700921855e-16, 4.84736870627026e-11, 2.89482732982116e-05, 0.0111089965382423, 0.0136025228468352, 0.951705158136462, 1.07100306252107e-07, 4.35219686455574e-08, 3.42472479249159e-12, 0.951705158136462, 0.000642913736873169, 1.88423351700565e-12, 0.0100518357446336, 4.54226354033032e-05, 0.000335462627902512, 2.63974083545825e-08, 0.0142713678092802, 1.30072976540676e-05, 0.00012340980408668, 1.69189792261513e-10, 0.00673794699908547, 0.00673794699908547, 3.72665317207867e-06, 5.67755746187637e-12, 1.3887943864964e-11, 2.30657983610627e-09, 4.53999297624849e-05, 6.45923285705046e-06, 2.26145985427281e-06, 3.72665317207867e-06, 4.60135548131939e-10, 0.00674131681496878, 1.14056199149361e-12, 3.92982796831856e-07, 7.48892651606827e-05, 2.16791491497368e-09, 4.60135548131939e-10, 4.7727633936802e-05, 1.74008858514694e-11, 3.80383800357089e-06, 3.72665317207867e-06, 0.00708340892905212, 0.00451658094261267, 1.30072976540676e-05, 2.51099915574398e-08, 0.0157801887861756, 7.31864692788845e-05, 0.00640933344625638, 9.73620031300957e-10, 6.54326334172721e-11, 0.951705158136462, 3.728516964574e-06, 1.12628596740164e-05, 4.54680807575966e-05, 8.31528719103568e-07, 0.000184105793667579, 4.7727633936802e-05, 4.54226354033032e-05, 1.77864338406393e-10, 2.51225496924906e-08, 0.951705158136462, 3.05902320501826e-07, 1.85539136261598e-07, 0.951229424500714, 0.951705158136462, 2.14454083165892e-05, 0.951705158136462, 0.000203468369010644, 2.51937425193464e-06, 2.39051914530491e-06, 0.000335462627902512, 5.54515994321769e-05, 0.000158540575589276, 1.13999185304436e-12, 0.00673794699908547, 5.92008572840442e-10, 1.3887943864964e-11, 0.00247627466345276, 0.951705158136462, 0.00408677143846407, 0.28650479686019, 6.22725747336699e-11, 3.3999673782591e-09, 8.76424821944364e-08, 5.34601236116235e-10, 0.951705158136462, 1.69274408309893e-10, 5.01746820561753e-05, 1.12816864621722e-07, 7.5863526561039e-10, 0.000553084370147834, 2.06115362243856e-09, 2.51099915574398e-08, 1.69712564490116e-11, 1.3887943864964e-11, 4.35219686455574e-08, 3.05902320501826e-07, 0.00708340892905212, 5.05610109124981e-07, 1.14284539812209e-12, 1.06494746038243e-05, 2.37621897384794e-06, 0.000553914619234198, 7.70043172069537e-15, 4.20675388637505e-14, 0.951705158136462, 1.30474883410578e-06, 0.000158461325115751, 4.59905537865232e-10, 5.60559853622232e-09, 3.06668033044951e-07, 9.35762296884017e-14, 1.06770401003478e-06, 1.88533629141692e-13, 1.13999185304436e-12, 4.78511739212901e-06, 0.00012340980408668, 6.82901703136567e-08, 3.72665317207867e-06, 3.0605530990624e-07, 0.000261258557301668, 0.000158461325115751, 2.26032940698105e-06, 4.13993771878517e-08, 0.000158540575589276, 3.57428743338516e-09, 0.0111089965382423, 2.51225496924906e-08, 2.06115362243856e-09, 3.0605530990624e-07, 7.19413303032538e-09, 2.39013758191277e-10, 0.000430742540575688, 0.00166155727317393, 1.06770401003478e-06, 0.000553360981479978, 0.000564539614824394, 2.75502210170519e-05, 5.04347662567888e-07, 7.36347283395392e-18, 1.3674196065681e-05, 6.18118844479437e-06, 3.22686332296889e-06, 0.951705158136462, 0.000335630401156281, 1.33134712014837e-14, 3.44419877740557e-14, 1.38948895731788e-11, 4.61056740113121e-10, 8.76424821944364e-08, 2.41336277183321e-12, 5.04599899453138e-07, 1.33890341235067e-10, 0.00532682448382038, 7.68504624785534e-15, 1.69189792261513e-10, 0.000430742540575688, 1.85539136261598e-07, 3.72665317207867e-06, 0.000553360981479978, 1.71819856305081e-15, 2.51749871943828e-09, 0.951705158136462, 5.60559853622232e-09, 0.00524751839918138, 0.0026058405184085, 5.60559853622232e-09, 0.472366552741015, 1.19844048520968e-12, 2.79225895616086e-10, 0.00193528630926782, 1.85152672954441e-06, 2.06115362243856e-09, 3.26613134278745e-13, 1.38520886031376e-10, 1.69189792261513e-10, 0.951705158136462, 5.44091138530373e-17, 1.13999185304436e-12, 3.05902320501826e-07, 2.68234470489704e-14, 2.51225496924906e-08, 4.59905537865232e-10, 1.77864338406393e-10, 8.74162108200159e-07, 1.02242856555085e-08, 0.000129737160045754, 1.71476560003205e-15, 1.38948895731788e-11, 7.19413303032538e-09, 7.5769156379498e-13, 0.00033647052687876, 5.90530399894404e-10, 4.11858870753571e-06, 0.951705158136462, 4.53999297624849e-05, 4.54226354033032e-05, 0.951705158136462, 0.951705158136462, 3.72665317207867e-06, 1.33134712014837e-14, 0.00708340892905212, 0.00247999186265036, 0.00673794699908547, 2.924916218268e-09, 0.00673794699908547, 0.000335630401156281, 0.951705158136462, 2.26145985427281e-06, 2.63974083545825e-08, 9.61597199033844e-05, 0.951705158136462, 0.60683400087146, 0.000453053653091073, 3.3999673782591e-09, 4.36564452959387e-09, 2.54493779821181e-13, 9.36230295022243e-14, 0.951705158136462, 4.77753854425123e-05, 0.000553084370147834, 2.18351512950432e-11, 2.26032940698105e-06, 0.000129737160045754, 3.26613134278745e-13, 4.53999297624849e-05, 2.82575728711561e-15, 5.60279643753727e-09, 2.51099915574398e-08, 2.04097057132405e-05, 2.79086317565699e-10, 1.61152469107488e-08, 4.07262173446808e-21, 8.31944587421534e-07, 3.26613134278745e-13, 1.50158484838944e-12, 6.56020016815378e-12, 0.000814855305295615, 2.51225496924906e-08, 0.951705158136462, 3.05902320501826e-07, 3.91772276602433e-06, 0.00865169520312063, 0.28650479686019, 6.405174689623e-13, 2.47264135281109e-21, 3.05902320501826e-07, 1.12535174719259e-07, 6.03967939319146e-10, 1.87952881653908e-12, 3.05902320501826e-07, 0.951705158136462, 2.51225496924906e-08, 3.0605530990624e-07, 4.25047896355205e-18, 0.00673794699908547, 0.000261258557301668, 5.90530399894404e-10, 0.0301973834223185, 2.63974083545825e-08, 8.31528719103568e-07, 1.45999939733294e-11, 7.6812046852021e-15, 1.44570291688494e-07, 0.000553360981479978, 0.000553360981479978, 1.67017007902457e-05, 4.54226354033032e-05, 4.6951575726312e-18, 0.00055363773115237, 5.10908902806333e-12, 0.00865169520312063, 2.38853628184012e-08, 1.01554505155667e-05, 7.48892651606827e-05, 0.951705158136462, 2.37621897384794e-06, 2.1668312284604e-09, 0.00525014281443011, 4.40881615976168e-13, 2.14561337018703e-05, 4.3634622529437e-09, 4.7727633936802e-05, 9.35762296884017e-14, 0.00121016326345537, 0.951229424500714, 0.0183614852700543, 2.51099915574398e-08, 0.135335283236613, 0.000863514386355847, 7.19413303032538e-09, 2.17243993507902e-10, 0.999500124979169, 7.6812046852021e-15, 0.105399224561864, 3.92786354548104e-07, 6.9144001069402e-13, 1.67017007902457e-05, 9.36230295022243e-14, 2.64657363890912e-09, 5.89005795366149e-09, 3.3999673782591e-09, 5.67852378482794e-14, 8.31803014157123e-05, 0.000158461325115751, 7.91370171109471e-07, 0.951705158136462, 0.00708340892905212, 2.14454083165892e-05, 4.53999297624849e-05, 3.92786354548104e-07, 0.000158461325115751, 1.45999939733294e-11, 0.000553084370147834, 5.90530399894404e-10, 0.60683400087146, 3.05902320501826e-07, 1.62191282508075e-13, 3.26613134278745e-13, 0.286648085077689, 1.12535174719259e-07, 1.20154257317718e-13, 4.53999297624849e-05, 0.951705158136462, 6.47595217584221e-07, 1.468785726345e-11, 2.51099915574398e-08, 3.71703186841267e-05, 0.00193045413622771, 9.66581709718793e-07, 0.951705158136462, 0.0820849986238988, 1.02875664258954e-10, 3.10657587845332e-12, 1.76034631215617e-06, 1.02670118544665e-10, 1.50483121732107e-08, 2.04625349553219e-06, 3.47851754052321e-13, 1.44498024610924e-07, 4.13993771878517e-08, 2.78946809286892e-10, 0.00012340980408668, 6.79380085872525e-06, 2.79086317565699e-10, 2.64657363890912e-09, 9.84724087682324e-14, 6.14421235332821e-06, 0.000553084370147834, 3.05902320501826e-07, 3.05902320501826e-07, 0.000224867324178848, 2.37126949816499e-05, 0.367879441171442, 1.26704992151533e-14, 2.51099915574398e-08, 1.468785726345e-11, 2.06115362243856e-09, 8.52578968847199e-07, 2.02763896730411e-22, 3.38074348390474e-07, 1.38948895731788e-11, 0.000553360981479978, 0.00193045413622771, 1.06770401003478e-06, 5.19884259503052e-11, 4.88427624528967e-12, 4.14200820522303e-08, 0.951705158136462, 8.48904403387178e-15, 8.48904403387178e-15, 1.69189792261513e-10, 1.67017007902457e-05, 3.05902320501826e-07, 5.82946637308688e-05, 8.0959301752126e-16, 0.951705158136462, 0.000158461325115751, 0.951705158136462, 0.00708340892905212, 7.19413303032538e-09, 6.30511676014699e-16, 0.000553084370147834, 7.17555954486746e-08, 0.951229424500714, 6.30511676014699e-16, 4.53999297624849e-05, 9.83739855792608e-14, 3.97896253583724e-12, 0.00012347152441752, 3.05902320501826e-07, 5.04347662567888e-07, 0.0820849986238988, 8.76424821944364e-08, 0.00673794699908547, 0.000553084370147834, 8.76424821944364e-08, 0.00673794699908547, 2.1668312284604e-09, 0.00012340980408668, 0.00408881533511488, 0.00408677143846407, 0.0743107242891859, 0.484566791790503, 0.105451937351244, 0.212354124349076, 0.819140220812924, 0.637947045414389, 0.00166571636305303, 1.67017007902457e-05, 0.790966233891378, 0.60683400087146, 0.000912338020541539, 0.0302124858893318, 0.00095863515369402, 2.51099915574398e-08, 0.135402967797961, 0.608048883350721, 0.246596963941606, 0.028739005565245, 2.9023204086504e-06, 0.237520819095458, 4.14407972716296e-08, 5.17555500580187e-17, 0.951705158136462, 3.72665317207867e-06, 6.02357383788648e-08, 0.00261236326974643, 0.000553360981479978, 0.00673794699908547, 4.54226354033032e-05, 0.00673794699908547, 0.0235177458560091, 0.951705158136462, 2.14454083165892e-05, 2.64657363890912e-09, 0.951705158136462, 8.85534397644396e-12, 0.000430742540575688, 0.00673794699908547, 7.19413303032538e-09, 4.54226354033032e-05, 5.30206120182429e-07, 9.86286204658045e-15, 1.76034631215617e-06, 0.951705158136462, 1.69189792261513e-10, 9.36230295022243e-14, 1.4075653191894e-16, 5.44091138530373e-17, 1.4075653191894e-16, 1.38948895731788e-11, 1.30072976540676e-05, 1.38948895731788e-11, 9.36230295022243e-14, 1.4075653191894e-16, 2.51099915574398e-08, 3.05902320501826e-07, 2.51099915574398e-08, 1.12535174719259e-07, 5.62010827615891e-10, 2.26032940698105e-06, 7.13855630669085e-06, 0.000553084370147834, 0.00012340980408668, 0.0183156388887342, 0.00673794699908547, 0.000129737160045754, 0.00071195204596019, 0.0302124858893318, 1.44498024610924e-07, 0.00117087962079117, 0.000335462627902512, 7.88932482720022e-06, 3.92786354548104e-07, 1.75580153011059e-05, 3.21586267857925e-07, 8.31528719103568e-07, 6.82560337633487e-08, 0.00012340980408668, 1.3887943864964e-11, 3.535750085041e-05, 3.04324830084036e-05, 7.97132661438841e-10, 0.000261258557301668, 7.6812046852021e-15, 5.04347662567888e-07, 2.91736480260516e-08, 0.000158461325115751, 2.06115362243856e-09, 1.40686171244615e-16, 0.000553084370147834, 1.30072976540676e-05, 8.76424821944364e-08, 5.178143430357e-17, 1.30072976540676e-05, 0.000553084370147834, 0.00166155727317393, 0.00524751839918138, 0.000158461325115751, 1.13999185304436e-12, 2.51728450704886e-08, 3.72665317207867e-06, 0.000710174388842549, 2.75364493497472e-05, 0.0111089965382423, 0.00673794699908547, 6.17915013838452e-08, 2.69306713765785e-08, 2.05052457561193e-07, 2.63974083545825e-08, 0.0301973834223185, 2.51099915574398e-08, 3.82424662809714e-16, 1.01300935986307e-05, 1.06770401003478e-06, 5.60279643753727e-09, 2.06218445693692e-09, 8.31528719103568e-07, 1.67017007902457e-05, 3.97896253583724e-12, 0.000581441612193756, 2.51099915574398e-08, 1.06770401003478e-06, 3.05902320501826e-07, 7.70354601247021e-08, 3.72665317207867e-06, 2.06115362243856e-09, 5.30206120182429e-07, 7.19413303032538e-09, 3.72665317207867e-06, 3.97896253583724e-12, 1.37439077191963e-06, 1.31765142700955e-10, 4.53999297624849e-05, 0.000553360981479978, 2.06115362243856e-09, 1.44498024610924e-07, 1.3887943864964e-11, 0.0301973834223185, 1.69189792261513e-10, 0.670320046035639, 5.82946637308688e-05, 0.779190280829265, 2.26145985427281e-06, 0.00673794699908547, 2.51099915574398e-08, 5.60279643753727e-09, 4.53999297624849e-05, 0.000553084370147834, 5.60279643753727e-09, 0.861138438019701, 2.51099915574398e-08, 0.0497870683678639, 3.7751345442791e-11, 0.000158461325115751, 0.0306690891407788, 0.000158461325115751, 0.472366552741015, 0.00249366939663463, 1.30072976540676e-05, 0.223241753124423, 0.00247999186265036, 0.951705158136462, 0.000553084370147834, 1.06494746038243e-05, 4.7727633936802e-05, 0.0820849986238988, 0.000581441612193756, 0.223688683411983, 0.00150419110053529, 0.472366552741015, 1.01402287589649e-05, 0.377192353563157, 0.0302729713263857, 0.0235177458560091, 0.0820849986238988, 0.472602795073046, 0.00673794699908547, 3.0605530990624e-07, 0.951705158136462, 0.951705158136462, 0.22313016014843, 0.951705158136462, 0.28650479686019, 0.951705158136462, 0.00318437258482184, 0.0821260513855459, 0.606530659712633, 0.0498119681264688, 0.22313016014843, 0.00673794699908547, 0.22313016014843, 2.89482732982116e-05, 0.472602795073046, 0.951705158136462, 0.28650479686019, 0.951705158136462, 0.142274071586514, 0.00247999186265036, 0.0111145524253675, 0.192530634048713, 1.13999185304436e-12, 0.00166155727317393, 0.0183156388887342, 0.951705158136462, 0.135335283236613, 0.951705158136462, 0.0273373877245508, 2.89482732982116e-05, 0.0100518357446336, 0.00012347152441752, 0.951705158136462, 0.951705158136462, 0.951705158136462, 0.038774207831722, 0.951705158136462, 0.951229424500714, 0.00166155727317393, 4.53999297624849e-05, 0.951705158136462, 0.28650479686019, 0.22313016014843, 0.0564161395037774, 0.135402967797961, 0.0235177458560091, 0.778800783071405, 0.135335283236613, 0.00247999186265036, 0.0235295076691454, 0.223688683411983, 0.135335283236613, 0.0820849986238988, 0.00150720249312515, 0.105399224561864, 0.00150720249312515, 0.0639598331296256, 7.48892651606827e-05, 0.951229424500714, 0.0301973834223185, 0.0821260513855459, 0.951705158136462, 2.06218445693692e-09, 0.00055363773115237, 0.000389751968252755, 0.000335462627902512, 0.0820849986238988, 0.00673794699908547, 0.951229424500714, 0.951705158136462, 0.951705158136462, 0.951705158136462, 0.000553084370147834, 1.30138029290779e-05, 0.472366552741015, 0.0235177458560091, 0.0639278612067076, 3.72665317207867e-06, 0.0111145524253675, 0.00674131681496878, 0.368063426884623, 0.0450492023935578, 0.000728152539089461, 0.0235766137748874, 0.00675481294022526, 1.54281120319189e-13, 0.951705158136462, 0.223241753124423, 0.951705158136462, 0.28650479686019, 0.951705158136462, 0.951705158136462, 0.122456428252982, 0.000553084370147834, 0.367879441171442, 0.951705158136462, 0.951229424500714, 0.367879441171442, 0.00673794699908547, 5.33039564348739e-05, 0.000529540981138434, 0.157630751005284, 0.951705158136462, 0.951705158136462, 2.76744763765066e-05, 0.0183156388887342, 0.951705158136462, 0.0706865474998335, 0.0497870683678639, 0.951705158136462, 0.951705158136462, 0.0317456363780679, 0.60683400087146, 0.0498119681264688, 0.606530659712633, 0.00675481294022526, 0.999500124979169, 0.0235177458560091, 0.157630751005284, 0.00166155727317393, 0.00674131681496878, 0.00674131681496878, 0.00673794699908547, 0.00150343919297757, 0.951705158136462, 0.00674131681496878, 0.000409939897694686, 0.00247999186265036, 0.038774207831722, 0.038774207831722, 0.000261258557301668, 0.0351019006641707, 4.7727633936802e-05, 0.0618526707495454, 0.0192547017753869, 0.000805135477238069, 0.0142642339089993, 0.00674131681496878, 0.951705158136462, 0.0523397059484324, 0.00675481294022526, 0.00673794699908547, 0.00673794699908547, 0.00673794699908547, 0.0105672043838527, 1.3887943864964e-11, 0.105399224561864, 0.368063426884623, 0.000430742540575688, 0.28650479686019, 0.000553084370147834, 9.73620031300957e-10, 1.1259145637586e-07, 0.00708340892905212, 0.000123718714574115, 0.00525014281443011, 1.06770401003478e-06, 8.76424821944364e-08, 0.60683400087146, 5.60559853622232e-09, 8.74162108200159e-07, 1.76122670539221e-06, 2.54493779821181e-13, 0.951705158136462, 3.73598146051093e-06, 0.368800290356243, 5.60559853622232e-09, 0.000554468810903085, 0.000554468810903085, 1.8600356439553e-07, 8.80817919646059e-08, 2.51225496924906e-08, 7.19413303032538e-09, 1.12647766180326e-07, 7.21214086331336e-09, 5.60559853622232e-09, 0.0183156388887342, 8.85534397644396e-12, 1.06494746038243e-05, 3.0605530990624e-07, 0.0235295076691454, 3.72665317207867e-06, 0.00193141960464281, 1.25077809911509e-09, 1.67100537287014e-05, 0.00673794699908547, 4.54226354033032e-05, 0.951705158136462, 0.0821260513855459, 0.000553360981479978, 4.54226354033032e-05, 0.157630751005284, 3.38074348390474e-07, 1.1259145637586e-07, 2.89482732982116e-05, 1.1259145637586e-07, 7.5863526561039e-10, 3.91772276602433e-06, 3.91772276602433e-06, 0.00012347152441752, 0.000335630401156281, 8.31944587421534e-07, 1.06494746038243e-05, 0.00150720249312515, 4.79709515157022e-06, 1.18304976507983e-07, 5.30206120182429e-07, 3.728516964574e-06, 0.0822904678499759, 0.0142642339089993, 0.951705158136462, 2.19502031567398e-14, 4.83485399020988e-10, 3.2576989934351e-12, 4.59905537865232e-10, 0.0733509370077221, 0.0111089965382423, 0.0129068125804799, 0.0820849986238988, 3.728516964574e-06, 0.00095863515369402, 1.67100537287014e-05, 6.82901703136567e-08, 2.06115362243856e-09, 3.72665317207867e-06, 0.000261389219243081, 0.00150419110053529, 0.000261389219243081, 0.00247999186265036, 1.67435072785575e-05, 0.0498119681264688, 8.74162108200159e-07, 1.18304976507983e-07, 5.90825738922955e-10, 0.0113902221245134, 6.1595921008857e-06, 6.82901703136567e-08, 2.06115362243856e-09, 0.0116785669703954, 0.00247999186265036, 5.07511131328062, -0.0100503358535015, 5.298267365298, 5.45958551414416, 5.298267365298, 5.16478597392351, 4.60517018598809, 5.79906235097108, -0.0100503358535015, 5.01063529409626, 5.298267365298, 4.60507018098776, 2.99573227355399, 4.31748811353631, 5.298267365298, 5.84339947899212, 5.21764946348058, 5.34701228808679, 5.92692602597041, 4.55387689160054, 4.8283137373023, 5.23377884541047, 4.86745752441993, 5.79906235097108, 5.00394630594546, 5.47562638151845, 4.44253360251053, 5.52142091706223, 5.73654003889437, 5.76816473358547, 5.22035582507832, 4.49980967033027, 5.70371580576721, 3.89182029811063, 6.09805181000363, 6.17378610390194, 5.41610040220442, 4.36944785246702, 5.24623428667781, 5.07511131328062, 5.298267365298, 4.74493212836325, 5.66970849432245, 6.21450809342186, 5.298267365298, 6.30991827822652, 5.34705991053603, 5.22035582507832, 4.60517018598809, 5.63475388824576, 6.42160600751172, 5.55682806169954, 5.48063892334199, 4.24835237470145, 5.98893635391915, 5.16478597392351, 4.44253360251053, 5.59838492127545, 5.68697535633982, 5.34710753071747, 5.07517381523383, -0.0100503358535015, 5.71995105581779, -0.0100503358535015, 5.27299955856375, 5.76519110278484, 5.96612109776931, 4.38190162686073, 5.5412243287032, 4.74493212836325, 5.07486126639553, 5.63475388824576, 4.60507018098776, 4.31748811353631, 4.90527477843843, 4.86753445045558, 4.7870749892857, 3.91202300542815, 5.59819971208114, 5.94017125272043, -0.0100503358535015, 5.13550427614213, 5.76785213589615, 5.79906235097108, 5.52126089785958, 4.86753445045558, 6.30991827822652, 5.13568078307048, 5.01056862520727, 5.72031177660741, -4.60517018598809, 6.10924758276437, 5.26935188825502, 5.26346708911229, 4.12713438504509, 6.19438498273316, 4.59511985013459, 3.80666248977032, 4.90490433946401, 5.298267365298, 5.57969208942515, 5.85507192220243, 5.07517381523383, 5.68697535633982, 5.29330482472449, 5.6346110157949, 5.01030190519502, 5.66988092298052, 5.82891620541297, 4.59511985013459, 5.76832099579377, 5.54126354515843, 4.74484516806057, 5.52146091786225, 5.52146091786225, 6.30990009624304, 5.37063802812766, 5.78382518232974, 5.298267365298, 5.52146091786225, 5.52142091706223, 5.7037491407673, 5.07511131328062, 2.30158459266046, 4.8283137373023, 5.8406416573734, 4.60517018598809, 5.52146091786225, 5.16478597392351, 4.60517018598809, 5.01063529409626, 4.7874084059763, 5.41610040220442, 3.90177062896379, 5.41610040220442, 5.96612109776931, 5.54126354515843, 3.2188758248682, 5.61673473336903, -0.0100503358535015, 5.22035582507832, 5.52146091786225, 4.59511985013459, 5.37063802812766, 4.06044301054642, 5.23377884541047, 5.24697143919645, 5.43372200355424, 5.07473621950278, 4.49925396039654, 4.0943445622221, -0.0100503358535015, 6.46145255123165, 3.68887945411394, 5.65245409193376, 3.40086399276092, 3.91182298542548, 4.94149955526139, 5.29330482472449, 5.68694145746017, 6.21260609575152, 3.91202300542815, 5.7037491407673, 5.59842195899838, 4.38202663467388, -4.60517018598809, 5.99143954679548, 5.6346110157949, 3.91202300542815, 5.79605775076537, 5.23377884541047, 5.59471137960184, 3.91202300542815, -0.0100503358535015, 4.17438726989564, 4.49969855304586, 5.00394630594546, 5.22008551827846, 4.59511985013459, 5.41610040220442, 5.29831736654804, 4.60517018598809, 5.76519110278484, 2.70805020110221, 4.59511985013459, 4.60507018098776, 5.1645002188137, 5.70044357339069, -0.0100503358535015, 3.91202300542815, 5.37063802812766, 4.12713438504509, 5.52146091786225, 4.60517018598809, 5.29831736654804, 4.60507018098776, 6.00386237544368, -0.0100503358535015, 3.91202300542815, 4.49969855304586, 3.91182298542548, 4.60517018598809, 4.38190162686073, 5.73654003889437, 6.0282785202307, 5.29831736654804, 5.59471137960184, 5.2203017695633, 3.91202300542815, 5.10594547390058, 3.2188758248682, 5.70044357339069, 4.59511985013459, 4.59511985013459, 5.9267926837474, 5.24174701505964, 4.31748811353631, 5.16478597392351, 6.17378610390194, -0.0100503358535015, 6.14416417466793, 5.99143954679548, -0.0100503358535015, 3.91202300542815, 4.24849524204936, 0, 5.7037491407673, 5.01063529409626, 5.23638876992587, 3.73766961828337, 5.99143954679548, 6.05208916892442, -0.0100503358535015, 5.82600010738045, 5.10588486600335, 5.76816473358547, 4.59511985013459, -0.0100503358535015, 5.98893635391915, 4.00733318523247, 4.60507018098776, 5.16478597392351, 4.9416424226093, 5.04342511691925, 5.7037824746562, 5.99146454710798, 0, 4.49969855304586, 4.7444102530796, 3.80666248977032, 4.48863636973214, 5.07511131328062, 5.29831736654804, 5.43794886563323, -0.0100503358535015, 3.68887945411394, 6.21458809822219, -0.0100503358535015, 5.01063529409626, 5.81410068063326, 5.52146091786225, 4.09351088147352, 3.91202300542815, 5.41610040220442, 4.38202663467388, 5.76832099579377, 5.81413053182507, 5.29831736654804, 4.60517018598809, 3.40086399276092, 4.31748811353631, 5.72031177660741, 5.01063529409626, 4.9766647745251, 4.35670882668959, 2.99322914333587, 5.7037824746562, 4.60517018598809, 5.98896141688986, 5.79906235097108, -4.60517018598809, 5.298267365298, 2.99573227355399, 4.60517018598809, -4.60517018598809, 3.71357206670431, 6.08675199938131, 4.3173547713133, 5.52146091786225, 3.91202300542815, -0.0100503358535015, -0.0100503358535015, 1.6094379124341, 2.99523214851231, 3.91202300542815, 4.49969855304586, 6.19440539110467, 4.59511985013459, 5.29831736654804, 3.68862942285873, 4.06044301054642, 5.41610040220442, 3.91202300542815, 5.29831736654804, -0.0100503358535015, 4.38202663467388, 5.52146091786225, 5.78382518232974, 3.2188758248682, 4.60517018598809, 5.22035582507832, 5.72031177660741, 4.60507018098776, 6.21460809842219, 5.85793315448346, 5.23638876992587, 4.70029853107967, 2.30158459266046, 5.84354441703136, 5.85793315448346, 2.99322914333587, 1.6094379124341, 4.60517018598809, 4.24849524204936, 4.82028156560504, 4.8283137373023, -0.0100503358535015, 4.38202663467388, 4.5798523780038, -2.30258509299405, 4.60517018598809, 5.92692602597041, 2.99573227355399, 4.60266705576997, 5.52146091786225, 4.24849524204936, 4.60517018598809, 5.99146454710798, 3.87120101090789, -0.0100503358535015, 3.68887945411394, 5.68697535633982, 4.86753445045558, 5.73657229747919, 4.38202663467388, 5.01063529409626, 4.60507018098776, 3.68887945411394, 4.31748811353631, 4.9416424226093, 3.91202300542815, 5.67846466667191, 4.60517018598809, 4.30406509320417, 4.902381708656, 4.60517018598809, 4.8283137373023, 5.61677109766657, -0.0100503358535015, 4.31748811353631, 5.24697143919645, 5.01056862520727, 4.31748811353631, 0, 4.60507018098776, 5.298267365298, 5.01056862520727, 5.82600010738045, 4.59511985013459, -0.0100503358535015, 4.31748811353631, 4.78749174278205, 5.22300097223859, 5.85793315448346, 5.01063529409626, 5.19273460397297, 5.48893772615669, 2.30158459266046, 3.91202300542815, 5.96612109776931, 4.55387689160054, 5.57954112893877, 4.31748811353631, 2.70805020110221, 5.10594547390058, 3.91182298542548, 5.23110861685459, 4.60517018598809, 2.70805020110221, 3.40086399276092, 5.01063529409626, 4.26267987704132, 5.29831736654804, 4.49980967033027, 5.01063529409626, -0.0100503358535015, -0.0100503358535015, 5.70044357339069, 3.40119738166216, -0.0100503358535015, -4.60517018598809, -0.0100503358535015, 5.18738580584075, 4.31748811353631, 4.24849524204936, 4.60507018098776, 4.60507018098776, 5.16478597392351, 5.99146454710798, 5.01063529409626, 4.49980967033027, 4.78749174278205, 5.63478960316925, 3.49650756146648, 4.49969855304586, 4.74493212836325, 4.86753445045558, 2.2512917986065, -0.0100503358535015, -0.0100503358535015, -0.0100503358535015, 5.85793315448346, 5.52142091706223, 5.29831736654804, 5.73657229747919, 5.50125821054473, 6.12686918411419, 5.57972982598622, 4.48863636973214, -0.0100503358535015, 5.43193000587196, 5.52134091066167, 5.52142091706223, 5.52146091786225, 6.21460809842219, 4.60517018598809, 0, 5.70044357339069, 5.82894561761021, -0.0100503358535015, 2.30158459266046, 3.91202300542815, 3.2188758248682, 4.60507018098776, -4.60517018598809, 5.51415428934647, 3.91202300542815, 5.29831736654804, -0.0100503358535015, 5.22035582507832, 0.688134638736401, 5.78382518232974, 4.8283137373023, 5.24702407216049, 5.01063529409626, 4.8283137373023, 5.43803582971712, -0.0100503358535015, -0.0100503358535015, 5.99146454710798, 5.29330482472449, 3.68887945411394, 4.31748811353631, 5.24169410360695, 4.60457000591606, 5.52138091466208, 5.70044357339069, 5.41610040220442, 2.99523214851231, 4.70048036579242, 5.29831736654804, 5.51745289646471, 4.8283137373023, 0, 4.0943445622221, 5.19290129379139, 1.6094379124341, 4.49980967033027, -0.0100503358535015, 3.91202300542815, 4.74493212836325, 5.51745289646471, 3.91202300542815, 5.53334996225466, 0, 4.38202663467388, 3.68887945411394, 4.60517018598809, 6.01126717440416, 1.6094379124341, 4.8283137373023, 3.91182298542548, 4.82791365728096, 5.07511131328062, 4.86753445045558, -0.0100503358535015, 4.49969855304586, 4.71402459090017, 5.75257263882563, 5.298267365298, 5.07517381523383, 5.2203017695633, 5.01063529409626, 4.31748811353631, 5.29831736654804, 4.77068462446567, 5.298267365298, 5.52146091786225, 4.59511985013459, 5.01063529409626, 4.36944785246702, 5.99143954679548, 4.094177881665, 5.34710753071747, 4.52710053056617, 4.59511985013459, 5.03695260241363, 5.01056862520727, 5.13573961179068, 4.78749174278205, 5.27299955856375, 6.05208916892442, 5.29831736654804, 5.7037824746562, 4.23410650459726, 5.7037824746562, 5.00394630594546, 5.01063529409626, 4.70048036579242, 4.59511985013459, 5.41601150936468, 4.60507018098776, 4.48863636973214, 5.94017125272043, 5.01056862520727, 2.63905732961526, 4.78749174278205, 5.00394630594546, 4.60507018098776, 5.99146454710798, -4.60517018598809, -4.60517018598809, 6.16331480403464, 4.59511985013459, 5.97886044812496, 5.16478597392351, 3.91202300542815, 5.7037824746562, 5.99143954679548, 2.2975725511705, 4.07753744390572, 3.91202300542815, 5.4553211153577, 5.85790458264672, 4.27666611901606, 5.13579843705026, -0.0100503358535015, 5.78382518232974, 4.9416424226093, -4.60517018598809, 4.99443815919368, 5.99143954679548, 4.55387689160054, 6.21260609575152, 3.80666248977032, 4.8283137373023, 4.41823801663645, 5.01063529409626, -0.0100503358535015, 5.298267365298, 5.22035582507832, 5.3082181912253, 5.66984643962735, 5.39358209077382, 4.49969855304586, 5.63121178182137, 5.01063529409626, -0.0100503358535015, 3.91182298542548, 4.31748811353631, 5.01056862520727, 5.61677109766657, 5.51745289646471, -0.0100503358535015, 5.28826703069454, 5.7037824746562, 4.70953020131233, 4.60517018598809, 6.01615715969835, 5.01063529409626, 5.7037824746562, 4.60517018598809, 4.0943445622221, 4.72738781871234, 5.04342511691925, 4.49980967033027, 5.19295685089021, 4.60507018098776, 3.40119738166216, 6.55100890392083, 5.61677109766657, 4.55377162290209, -0.0100503358535015, 6.30991827822652, -0.0100503358535015, 5.34710753071747, 5.18738580584075, 4.38202663467388, 5.04342511691925, 5.01063529409626, 5.34233425196481, 6.08675199938131, 5.85790458264672, 5.29831736654804, 5.01063529409626, -0.0100503358535015, 4.60517018598809, 5.97888576490112, 2.30158459266046, 4.8283137373023, 5.34228640393016, 2.30158459266046, -4.60517018598809, 6.3279189264269, 4.0943445622221, 3.68862942285873, 5.16478597392351, 5.43799234862052, 5.19295685089021, -4.60517018598809, 4.78749174278205, 3.91202300542815, 4.97673374242057, 2.2975725511705, 5.70044357339069, 6.32793678372919, 5.07486126639553, 3.91102250509456, -0.0100503358535015, 5.06890420222023, 3.91202300542815, 6.32793678372919, 6.30973644351377, 4.38202663467388, 5.01056862520727, 6.10922536029523, 4.38190162686073, 5.42912630665945, 6.66568371778241, 5.2257466737132, 5.29831736654804, 5.29831736654804, 5.39362754635236, 5.85779028713555, 5.41610040220442, -0.0100503358535015, 4.60517018598809, -4.60517018598809, 5.79906235097108, 4.00733318523247, 4.60517018598809, 5.52146091786225, 5.19295685089021, 4.8519521358677, -4.60517018598809, 4.49969855304586, 6.15271141788201, -0.0100503358535015, 3.91202300542815, 5.99146454710798, 4.60507018098776, 5.19290129379139, 5.40591537714606, 5.63478960316925, 5.65248918026865, 4.36944785246702, 4.59511985013459, 5.95958680820996, 5.48059725580725, 5.16478597392351, 6.08221891037645, 4.9416424226093, 4.94157099148673, 4.60507018098776, 5.29330482472449, 4.38202663467388, -0.0100503358535015, 5.29831736654804, 5.22035582507832, 6.10922536029523, 3.91182298542548, 5.5606431687374, 5.00394630594546, 5.16478597392351, 5.01063529409626, 3.91202300542815, 0, 2.30158459266046, 5.76828974530548, 5.27274311542861, 4.38202663467388, 5.38449506278909, -0.0100503358535015, 5.34710753071747, 5.01063529409626, 6.06145691892802, -0.0100503358535015, 5.37523211031616, 5.39358209077382, 5.298267365298, -0.0100503358535015, 2.30158459266046, 4.71849887129509, 4.49969855304586, 4.38202663467388, 5.66296048013595, 5.07486126639553, 5.76519110278484, 2.30258509299405, 4.60507018098776, 5.50109493190937, 4.02535169073515, 5.82894561761021, 4.86745752441993, -0.0100503358535015, 5.01063529409626, 4.3816515643438, -0.0100503358535015, 5.7037824746562, 6.12905021006055, 4.60507018098776, 5.34705991053603, 2.99523214851231, 4.38202663467388, 4.60487014097909, 5.39362754635236, 5.85793315448346, 5.13573961179068, 4.60517018598809, 5.29816735529691, 6.3279189264269, 4.49980967033027, 5.76832099579377, 5.15905529921453, 5.99146454710798, 5.34233425196481, 5.85793315448346, 4.55387689160054, -0.0100503358535015, 5.29831736654804, 5.57972982598622, -0.0100503358535015, 5.01056862520727, 5.29330482472449, 4.8283137373023, 4.31748811353631, -0.0100503358535015, 4.60507018098776, 5.01063529409626, -0.0100503358535015, 6.10922536029523, 5.19295685089021, 5.99146454710798, 5.52142091706223, 5.29330482472449, 6.42160600751172, 0, -0.0100503358535015, 5.56068163101553, 5.57972982598622, 4.86745752441993, 3.91202300542815, 5.58368426104238, 6.18414889093748, 5.14166355650266, 4.33073334028633, 2.30258509299405, 3.91202300542815, 4.85981240436167, -4.60517018598809, 0, 5.85793315448346, 3.91202300542815, 5.0998664278242, 5.52126089785958, 5.82600010738045, 5.29831736654804, 5.07517381523383, 3.91202300542815, 5.97888576490112, 6.30991827822652, 6.68461172766793, 6.26339826259162, 5.16478597392351, 5.298267365298, 5.85790458264672, 3.91202300542815, 5.48059725580725, 6.33850573507843, 5.19295685089021, -0.0100503358535015, 6.44571981938558, 4.48863636973214, 5.98896141688986, 5.45099553418974, 5.12026667660473, 4.17438726989564, 5.70044357339069, -0.0100503358535015, 5.84643877505772, -4.60517018598809, 3.91202300542815, -0.0100503358535015, -0.0100503358535015, 5.52142091706223, 5.16478597392351, -0.0100503358535015, 4.86745752441993, -0.0100503358535015, 5.47646355193151, 5.52146091786225, 5.01063529409626, 4.31748811353631, 5.76828974530548, 5.52134091066167, 5.23644196282995, 5.7037824746562, 5.298267365298, 5.07872998456159, 5.2040066870768, 5.7037824746562, 4.69134788222914, 4.8283137373023, 3.63705970538414, 5.99146454710798, 6.27285813844364, -0.0100503358535015, 4.38190162686073, 4.7874084059763, 4.60517018598809, -0.0100503358535015, 6.47695697815595, 5.99143954679548, 5.70044357339069, 5.01063529409626, 5.55675083864069, 5.63475388824576, 5.01063529409626, 5.85793315448346, 4.31748811353631, -0.0100503358535015, -0.0100503358535015, 5.52142091706223, 5.29831736654804, 4.60517018598809, 4.49980967033027, 5.92692602597041, -0.0100503358535015, 5.52146091786225, -0.0100503358535015, 5.22035582507832, 6.36301086201252, -0.0100503358535015, 6.21460809842219, 4.67282883446191, 5.7037824746562, 5.07511131328062, 3.80666248977032, 5.52142091706223, 5.63475388824576, 5.62398140445265, 4.55387689160054, 2.30258509299405, 5.94014493658469, 5.61677109766657, 4.97673374242057, 5.61677109766657, -0.0100503358535015, 5.29831736654804, 6.08449941307517, 5.93753620508243, -0.0100503358535015, 5.85793315448346, 5.19295685089021, 5.27223003178472, 5.88610403145016, 6.21460809842219, 6.13828845154878, -0.0100503358535015, 4.59511985013459, 6.6795866229514, 5.56048930482972, 5.61677109766657, 4.60517018598809, 4.60517018598809, -0.0100503358535015, 5.7037824746562, 4.8283137373023, 5.298267365298, 5.50113575406765, 5.52134091066167, 5.16478597392351, 5.298267365298, 4.31748811353631, 6.21460809842219, 6.49223983502047, 5.88607625328657, 6.26339826259162, -0.0100503358535015, -0.0100503358535015, 5.3463929897796, 5.7037491407673, 5.01043527409359, 5.19290129379139, 5.16472882943366, 5.52146091786225, 5.52146091786225, 5.85790458264672, 5.29831736654804, 2.30258509299405, 6.10913646547996, 5.85864718521712, 5.56068163101553, 6.17376527035159, 5.03695260241363, 5.47646355193151, 5.92958914338989, -0.0100503358535015, 5.95324333428778, 5.77762136299107, 5.08759633523238, 6.51471269087253, 2.30258509299405, 4.78749174278205, 5.43372200355424, 6.13120475011641, 5.85793315448346, 5.01050195187324, 4.65396035015752, 4.78749174278205, 3.2188758248682, 6.10922536029523, 5.76205138278018, 5.99146454710798, 4.70048036579242, 5.29976631631314, 5.82891620541297, 6.72141365252529, 5.01063529409626, 6.27285813844364, 5.7037824746562, 4.24849524204936, 5.63475388824576, 5.48844173540501, -0.0100503358535015, 4.74493212836325, 6.21260609575152, 5.92692602597041, 6.21260609575152, 4.38202663467388, 5.26269018890489, 4.59511985013459, -0.0100503358535015, 5.99143954679548, 5.16472882943366, 5.07511131328062, 5.5606431687374, 5.16478597392351, 5.298267365298, 5.19295685089021, 5.29831736654804, 5.88332238848828, 5.85793315448346, 5.63475388824576, 4.93806460126142, 6.30990009624304, 5.81410068063326, 5.63475388824576, 6.80239476332431, 6.23441072571837, 5.45958551414416, 5.96612109776931, 6.08672927133376, 6.13748944486588, -0.0100503358535015, 5.7037491407673, 5.48059725580725, 5.7037824746562, 4.70048036579242, 5.7037491407673, 5.01063529409626, 5.94003966511579, 5.4249500174814, 4.59511985013459, -0.0100503358535015, 5.95842469302978, 6.30991827822652, 5.52142091706223, 5.19267903452504, 6.38010558760358, 5.13573961179068, 5.17201691043186, 5.82600010738045, 4.38202663467388, 5.10594547390058, 4.86753445045558, 5.96177823673762, 5.19267903452504, 6.06376195260323, 6.21460809842219, 6.13122648948314, 5.15329159449778, 5.39362754635236, 5.50125821054473, 5.52142091706223, 6.57941786478942, 5.7037824746562, 6.21460809842219, 5.66984643962735, 5.29831736654804, 5.70034323390869, 5.07517381523383, 5.43803582971712, 5.01030190519502, 3.21847574484686, 4.68213122712422, 4.60507018098776, 5.43803582971712, 5.45954296004726, 5.02388052084628, 6.54965074223381, 6.16331480403464, 5.34233425196481, 4.49980967033027, 4.45376573182886, -0.0100503358535015, 5.77140996999679, 5.82600010738045, 6.26909628370626, -0.0100503358535015, 4.9903645572539, 6.29147654267877, 4.52178857704904, 5.298267365298, 5.07517381523383, 5.85507192220243, 4.44253360251053, 5.41610040220442, 5.19295685089021, 6.10924758276437, 4.60517018598809, 4.60517018598809, 5.52146091786225, 6.24976286449657, 6.21460809842219, 5.9858236672179, 5.29831736654804, 5.47646355193151, 5.5606431687374, 5.52146091786225, 6.06376195260323, 4.60507018098776, 6.30990009624304, 5.68694145746017, 5.24697143919645, 5.98893635391915, 6.06376195260323, 5.29330482472449, 6.20554717193168, 5.51981957159012, 5.52146091786225, 4.59511985013459, 4.68213122712422, 5.41610040220442, 5.85793315448346, 4.41859961490472, 5.24938969292461, 4.61512051684126, 6.0282785202307, 6.15060276844628, -0.0100503358535015, 5.52142091706223, 5.42881917461219, 5.29816735529691, 5.63478960316925, 5.14749447681345, 5.29330482472449, 5.298267365298, 6.10702288774225, 5.85790458264672, -0.0100503358535015, 5.7037824746562, 5.73657229747919, 0, -0.0100503358535015, 5.37063802812766, -0.0100503358535015, 5.13579843705026, 5.55230045301322, 5.55636463387013, 5.07517381523383, 5.27811465923052, 5.16472882943366, 6.30991827822652, 4.60517018598809, 6.05197151494464, 6.21460809842219, 4.78765839556137, -0.0100503358535015, 4.70048036579242, 3.2188758248682, 6.15271141788201, 5.96612109776931, 5.78382518232974, 6.05676059375064, -0.0100503358535015, 6.10922536029523, 5.28826703069454, 5.76816473358547, 6.04023090147015, 5.01063529409626, 5.99146454710798, 5.85793315448346, 6.20655576523136, 6.21460809842219, 5.82600010738045, 5.7037824746562, 4.59511985013459, 5.66970849432245, 6.30982736500313, 5.43372200355424, 5.55682806169954, 5.01043527409359, 6.47689543685403, 6.42323072963552, -0.0100503358535015, 5.60208191982986, 5.16478597392351, 6.06378520868761, 5.94014493658469, 5.7036157940991, 6.39692965521615, 5.61677109766657, 6.37330272458499, 6.30991827822652, 5.50125821054473, 5.19295685089021, 5.79906235097108, 5.52146091786225, 5.7037491407673, 5.10594547390058, 5.16478597392351, 5.56068163101553, 5.82894561761021, 5.16472882943366, 5.96355363634714, 4.49980967033027, 5.85790458264672, 5.99146454710798, 5.7037491407673, 5.92692602597041, 6.09377290968176, 5.04342511691925, 4.85203026391962, 5.61677109766657, 5.01056862520727, 5.00789821838637, 5.34705991053603, 5.66988092298052, 6.67076632084587, 5.41164605185504, 5.48013879830031, 5.53291506790736, -0.0100503358535015, 5.07511131328062, 6.45990445437753, 6.4297033488768, 6.21458809822219, 6.06366892285691, 5.78382518232974, 6.28226674689601, 5.66984643962735, 6.11959387481851, 4.65109911787649, 6.47695697815595, 6.10924758276437, 5.04342511691925, 5.73657229747919, 5.52146091786225, 5.01056862520727, 6.52201926605497, 5.98141421125448, -0.0100503358535015, 5.94014493658469, 4.65396035015752, 4.77912349311153, 5.94014493658469, 2.70805020110221, 6.30809844150953, 6.08672927133376, 4.82791365728096, 5.57591122364102, 5.99146454710798, 6.35437004079735, 6.11809719804135, 6.10924758276437, -0.0100503358535015, 6.61873898351722, 6.30991827822652, 5.7037824746562, 6.4377356496084, 5.85790458264672, 6.06378520868761, 6.10702288774225, 5.63121178182137, 5.90800141310672, 5.18738580584075, 6.52207809217967, 6.21458809822219, 5.92692602597041, 6.32466357548024, 5.07479874490374, 6.05208916892442, 5.51342874616498, -0.0100503358535015, 5.29831736654804, 5.298267365298, -0.0100503358535015, -0.0100503358535015, 5.52146091786225, 6.45990445437753, 4.59511985013459, 4.7874084059763, 4.60517018598809, 5.97380961186926, 4.60517018598809, 5.07511131328062, -0.0100503358535015, 5.5606431687374, 5.85507192220243, 5.2203017695633, -0.0100503358535015, 2.30158459266046, 5.03688766524032, 5.96612109776931, 5.95321735992448, 6.36301086201252, 6.39691298841059, -0.0100503358535015, 5.29320431716121, 5.01063529409626, 6.1963422896153, 5.56068163101553, 5.18738580584075, 6.35437004079735, 5.29831736654804, 6.50727771238501, 5.94017125272043, 5.85793315448346, 5.37523211031616, 6.08675199938131, 5.88296020591645, 6.84481547920826, 5.63475388824576, 6.35437004079735, 6.29984957673146, 6.24416690066374, 4.95758607300644, 5.85790458264672, -0.0100503358535015, 5.7037824746562, 5.51745289646471, 4.55387689160054, 3.2188758248682, 6.33066520106826, 6.85538772357226, 5.7037824746562, 5.76832099579377, 6.05102978444537, 6.29156913955832, 5.7037824746562, -0.0100503358535015, 5.85790458264672, 5.7037491407673, 6.6845992275898, 4.60517018598809, 5.10594547390058, 6.05208916892442, 4.24849524204936, 5.85507192220243, 5.63478960316925, 6.21260609575152, 6.47697236288968, 5.75254089228997, 5.01056862520727, 5.01056862520727, 5.39362754635236, 5.298267365298, 6.68210859744981, 5.01050195187324, 6.25382881157547, 4.55387689160054, 5.86078622346587, 5.43786189398593, 5.24697143919645, -0.0100503358535015, 5.55682806169954, 5.98896141688986, 4.65386510752685, 6.34388043412633, 5.37059151541806, 5.95324333428778, 5.29330482472449, 6.39692965521615, 4.90037389983872, 0, 4.38140143927996, 5.85793315448346, 3.68887945411394, 4.94939798462507, 5.92692602597041, 6.09807428216624, -4.60517018598809, 6.47697236288968, 3.80666248977032, 5.68697535633982, 6.32793678372919, 5.39362754635236, 6.39691298841059, 5.97888576490112, 5.93753620508243, 5.96612109776931, 6.41344256359036, 5.23585668520543, 5.16478597392351, 5.6383190815119, -0.0100503358535015, 4.59511985013459, 5.37063802812766, 5.29831736654804, 5.68697535633982, 5.16478597392351, 6.21260609575152, 5.01063529409626, 6.05208916892442, 2.30158459266046, 5.7037824746562, 6.37842618365159, 6.35437004079735, 3.21847574484686, 5.76832099579377, 6.38856140554563, 5.29831736654804, -0.0100503358535015, 5.65248918026865, 6.21236558586941, 5.85793315448346, 5.31811999384422, 4.8283137373023, 5.62398140445265, -0.0100503358535015, 3.91202300542815, 6.13111778792317, 6.27278266247326, 5.57972982598622, 6.13120475011641, 5.88677047599332, 5.56830633509375, 6.35217633202897, 5.75257263882563, 5.82894561761021, 6.08677472691231, 5.19295685089021, 5.47222865598202, 6.08675199938131, 5.97888576490112, 6.39522820857639, 5.48063892334199, 5.01063529409626, 5.7037824746562, 5.7037824746562, 5.12396397940326, 5.36124521625051, 2.99573227355399, 6.46145255123165, 5.85793315448346, 6.21236558586941, 5.99146454710798, 5.63300229259515, 6.90675477864855, 5.6970934865054, 6.21458809822219, 5.01056862520727, 4.8283137373023, 5.61677109766657, 6.1603630835698, 6.25555808475115, 5.82891620541297, -0.0100503358535015, 6.47389069635227, 6.47389069635227, 6.10924758276437, 5.39362754635236, 5.7037824746562, 5.27299955856375, 6.54391184556479, -0.0100503358535015, 5.16478597392351, -0.0100503358535015, 4.59511985013459, 5.92692602597041, 6.5510803350434, 5.01063529409626, 5.79605775076537, 0, 6.5510803350434, 5.29831736654804, 6.39526159811545, 6.26339826259162, 5.19290129379139, 5.7037824746562, 5.66988092298052, 3.91202300542815, 5.78382518232974, 4.60517018598809, 5.01063529409626, 5.78382518232974, 4.60517018598809, 5.98896141688986, 5.19295685089021, 4.70038945256903, 4.70048036579242, 3.95105139239562, 2.67345875633259, 3.80644024285308, 3.43366457179966, 1.38379123090177, 2.19611284848353, 4.8516395626058, 5.39362754635236, 1.54543258245819, 2.30158459266046, 4.94157099148673, 4.24835237470145, 4.93447393313069, 5.85793315448346, 3.68862942285873, 2.2975725511705, 3.3322045101752, 4.26253902205129, 5.54126354515843, 3.35863776724336, 5.82888679235062, 6.62007320653036, -0.0100503358535015, 5.52146091786225, 5.80663986009591, 4.77870323674897, 5.01056862520727, 4.60517018598809, 5.298267365298, 4.60517018598809, 4.31748811353631, -0.0100503358535015, 5.37063802812766, 5.97888576490112, -0.0100503358535015, 6.23244801655052, 5.04342511691925, 4.60517018598809, 5.92692602597041, 5.298267365298, 5.66642668811243, 6.46925031679577, 5.57972982598622, -0.0100503358535015, 6.10924758276437, 6.39691298841059, 6.59303083541847, 6.61873898351722, 6.59303083541847, 6.21458809822219, 5.41610040220442, 6.21458809822219, 6.39691298841059, 6.59303083541847, 5.85793315448346, 5.7037824746562, 5.85793315448346, 5.76832099579377, 6.05441587181544, 5.56068163101553, 5.46806014113513, 5.01063529409626, 5.19295685089021, 4.38202663467388, 4.60517018598809, 5.18738580584075, 4.97638885536766, 4.24835237470145, 5.75257263882563, 4.90527477843843, 5.07517381523383, 5.45958551414416, 5.68697535633982, 5.3890717298165, 5.70044357339069, 5.63478960316925, 5.79909265446053, 5.19295685089021, 6.21460809842219, 5.32300997913841, 5.33753807970132, 6.03787091992214, 5.10594547390058, 6.47697236288968, 5.66988092298052, 5.84932477994686, 5.16478597392351, 5.99146454710798, 6.59304453414244, 5.01063529409626, 5.41610040220442, 5.78382518232974, 6.62005987310813, 5.41610040220442, 5.01063529409626, 4.85203026391962, 4.65396035015752, 5.16478597392351, 6.30991827822652, 5.85779028713555, 5.52146091786225, 4.97673374242057, 5.34710753071747, 4.49980967033027, 4.60517018598809, 5.80510484798093, 5.85392513308592, 5.73009978297357, 5.85507192220243, 4.24849524204936, 5.85793315448346, 6.56526497003536, 5.4380793089232, 5.61677109766657, 5.94017125272043, 5.99143954679548, 5.63478960316925, 5.39362754635236, 6.26339826259162, 5.00394630594546, 5.85793315448346, 5.61677109766657, 5.7037824746562, 5.79173230005423, 5.52146091786225, 5.99146454710798, 5.66642668811243, 5.92692602597041, 5.52146091786225, 6.26339826259162, 5.5982367566643, 6.12029741895095, 5.29831736654804, 5.01056862520727, 5.99146454710798, 5.75257263882563, 6.21460809842219, 4.24849524204936, 6.10924758276437, 2.07944154167984, 5.27299955856375, 1.60743590976343, 5.5606431687374, 4.60517018598809, 5.85793315448346, 5.94017125272043, 5.29831736654804, 5.01063529409626, 5.94017125272043, 1.0952733874026, 5.85793315448346, 4.0943445622221, 6.17378610390194, 5.16478597392351, 4.24405683545043, 5.16478597392351, 2.70805020110221, 4.78649124244846, 5.41610040220442, 3.40086399276092, 4.7874084059763, -0.0100503358535015, 5.01063529409626, 5.43372200355424, 5.29330482472449, 3.91202300542815, 5.00394630594546, 3.39952932456146, 4.86745752441993, 2.70805020110221, 5.43799234862052, 2.9704144655697, 4.24778070111149, 4.31748811353631, 3.91202300542815, 2.70738331211451, 4.60517018598809, 5.7037491407673, -0.0100503358535015, -0.0100503358535015, 3.40119738166216, -0.0100503358535015, 3.2188758248682, -0.0100503358535015, 4.74484516806057, 3.91182298542548, 2.30258509299405, 4.094177881665, 3.40119738166216, 4.60517018598809, 3.40119738166216, 5.34233425196481, 2.70738331211451, -0.0100503358535015, 3.2188758248682, -0.0100503358535015, 3.66356164612965, 4.7874084059763, 4.49969855304586, 3.49499126094852, 6.30991827822652, 4.85203026391962, 4.38202663467388, -0.0100503358535015, 3.68887945411394, -0.0100503358535015, 4.27652722048121, 5.34233425196481, 4.52178857704904, 5.19290129379139, -0.0100503358535015, -0.0100503358535015, -0.0100503358535015, 4.17438726989564, -0.0100503358535015, 0, 4.85203026391962, 5.29831736654804, -0.0100503358535015, 3.2188758248682, 3.40119738166216, 4.0517849478033, 3.68862942285873, 4.31748811353631, 1.6094379124341, 3.68887945411394, 4.7874084059763, 4.3173547713133, 3.39952932456146, 3.68887945411394, 3.91202300542815, 4.8671497610875, 3.80666248977032, 4.8671497610875, 4.00715135051972, 5.24697143919645, 0, 4.24849524204936, 3.91182298542548, -0.0100503358535015, 5.99143954679548, 5.01050195187324, 5.05624580534831, 5.07517381523383, 3.91202300542815, 4.60517018598809, 0, -0.0100503358535015, -0.0100503358535015, -0.0100503358535015, 5.01063529409626, 5.41605595677229, 2.70805020110221, 4.31748811353631, 4.00733318523247, 5.52146091786225, 4.49969855304586, 4.60507018098776, 2.99523214851231, 4.12713438504509, 4.97327950755249, 4.31682122454861, 4.60467006094641, 6.38012253689976, -0.0100503358535015, 3.40086399276092, -0.0100503358535015, 3.2188758248682, -0.0100503358535015, -0.0100503358535015, 3.73766961828337, 5.01063529409626, 2.99573227355399, -0.0100503358535015, 0, 2.99573227355399, 4.60517018598809, 5.282137170319, 5.01641853885198, 3.60956564739421, -0.0100503358535015, -0.0100503358535015, 5.34663122682659, 4.38202663467388, -0.0100503358535015, 3.97010321650467, 4.0943445622221, -0.0100503358535015, -0.0100503358535015, 4.23410650459726, 2.30158459266046, 4.094177881665, 2.30258509299405, 4.60467006094641, -4.60517018598809, 4.31748811353631, 3.60956564739421, 4.85203026391962, 4.60507018098776, 4.60507018098776, 4.60517018598809, 4.86753445045558, -0.0100503358535015, 4.60507018098776, 5.04979190263078, 4.7874084059763, 4.17438726989564, 4.17438726989564, 5.10594547390058, 4.20454335452018, 5.29330482472449, 4.01926175609774, 4.36944785246702, 4.9592718218077, 4.44265125649032, 4.60507018098776, -0.0100503358535015, 4.07753744390572, 4.60467006094641, 4.60517018598809, 4.60517018598809, 4.60517018598809, 4.51085950651685, 6.21460809842219, 3.80666248977032, 2.99523214851231, 5.04342511691925, 3.2188758248682, 5.01063529409626, 6.0282785202307, 5.76828974530548, 4.59511985013459, 5.19267903452504, 4.65386510752685, 5.61677109766657, 5.78382518232974, 2.30158459266046, 5.94014493658469, 5.63121178182137, 5.57969208942515, 6.36301086201252, -0.0100503358535015, 5.52126089785958, 2.99322914333587, 5.94014493658469, 5.01030190519502, 5.01030190519502, 5.73641099414793, 5.78351744267505, 5.85790458264672, 5.92692602597041, 5.76825849384057, 5.9267926837474, 5.94014493658469, 4.38202663467388, 6.23244801655052, 5.43372200355424, 5.7037491407673, 4.3173547713133, 5.52146091786225, 4.82823373410213, 6.016132769157, 5.39358209077382, 4.60517018598809, 5.298267365298, -0.0100503358535015, 3.91182298542548, 5.01056862520727, 5.298267365298, 3.60956564739421, 5.6970934865054, 5.76828974530548, 5.34233425196481, 5.76828974530548, 6.04023090147015, 5.51745289646471, 5.51745289646471, 5.19290129379139, 5.07511131328062, 5.63475388824576, 5.43372200355424, 4.8671497610875, 5.50105410808458, 5.76519110278484, 5.66642668811243, 5.52142091706223, 3.91102250509456, 4.44265125649032, -0.0100503358535015, 6.44413125670044, 6.06145691892802, 6.2709884318583, 6.06378520868761, 3.95603989084492, 4.49980967033027, 4.46590811865458, 3.91202300542815, 5.52142091706223, 4.93447393313069, 5.39358209077382, 5.79906235097108, 5.99146454710798, 5.52146091786225, 5.10588486600335, 4.86745752441993, 5.10588486600335, 4.7874084059763, 5.39340024779473, 4.094177881665, 5.63121178182137, 5.76519110278484, 6.05206563923583, 4.49423862528081, 5.48043056830425, 5.79906235097108, 5.99146454710798, 4.48863636973214, 4.7874084059763, 12.6487153497895, 0.99498743710662, 14.1417820659208, 15.3297097167559, 14.1417820659208, 13.228756555323, 10, 18.1656268815585, 0.99498743710662, 12.2474487139159, 14.1417820659208, 9.99949998749937, 4.47213595499958, 8.66025403784439, 14.1417820659208, 18.5728296174816, 13.5830777072061, 14.4906866641992, 19.3649167310371, 9.74679434480896, 11.1803398874989, 13.6930639376292, 11.4013157135482, 18.1656268815585, 12.2065556157337, 15.4531550176655, 9.21900211519663, 15.8110720699135, 17.6065328784517, 17.8871462229166, 13.6014705087354, 9.48683298050514, 17.3199307157968, 7, 21.0947860856658, 21.9089023002066, 15, 8.88819441731559, 13.7786066058945, 12.6487153497895, 14.1417820659208, 10.7238052947636, 17.0279182520941, 22.3595617130569, 14.1417820659208, 23.4520787991171, 14.4910317093021, 13.6014705087354, 10, 16.7329017208612, 24.7989919149953, 16.0934769394311, 15.4919333848297, 8.3660026296912, 19.9747340407826, 13.228756555323, 9.21900211519663, 16.4313724320277, 17.1755640373177, 14.4913767461894, 12.6491106406735, 0.99498743710662, 17.4610996217306, 0.99498743710662, 13.9642400437689, 17.8605710994918, 19.7481644716667, 8.94371287553441, 15.968406307456, 10.7238052947636, 12.6471340627037, 16.7329017208612, 9.99949998749937, 8.66025403784439, 11.6189500386223, 11.4017542509914, 10.952168735004, 7.07106781186548, 16.4298508818553, 19.4935886896179, 0.99498743710662, 13.0364872569262, 17.8843507011018, 18.1656268815585, 15.809807082947, 11.4017542509914, 23.4520787991171, 13.0376378228573, 12.2470404588211, 17.464249196573, 0.1, 21.2132034355964, 13.9387947829072, 13.8978415590335, 7.87400787401181, 22.1357177430505, 9.9498743710662, 6.70820393249937, 11.6167981819432, 14.1417820659208, 16.2785134456436, 18.6815416922694, 12.6491106406735, 17.1755640373177, 14.1067359796659, 16.7317064282159, 12.2454073023318, 17.0293863659264, 18.4388177495196, 9.9498743710662, 17.8885438199983, 15.9687194226713, 10.7233390322231, 15.8113883008419, 15.8113883008419, 23.4518655974317, 14.6628782986152, 18.0277563773199, 14.1417820659208, 15.8113883008419, 15.8110720699135, 17.3202193981485, 12.6487153497895, 3.16069612585582, 11.1803398874989, 18.5472369909914, 10, 15.8113883008419, 13.228756555323, 10, 12.2474487139159, 10.9539947051293, 15, 7.03491293478462, 15, 19.7481644716667, 15.9687194226713, 5, 16.5828224376914, 0.99498743710662, 13.6014705087354, 15.8113883008419, 9.9498743710662, 14.6628782986152, 7.61577310586391, 13.6930639376292, 13.7836860091922, 15.1327459504216, 12.6463433450148, 9.4841973830156, 7.74596669241483, 0.99498743710662, 25.2980236382212, 6.32455532033676, 16.8816468390972, 5.47631262803723, 7.07036066972541, 11.8313143817583, 14.1067359796659, 17.1752729235957, 22.3383079036887, 7.07106781186548, 17.3202193981485, 16.431676725155, 8.94427190999916, 0.1, 19.9997499984375, 16.7317064282159, 7.07106781186548, 18.1383571472171, 13.6930639376292, 16.4012194668567, 7.07106781186548, 0.99498743710662, 8.06225774829855, 9.48630591958745, 12.2065556157337, 13.5996323479718, 9.9498743710662, 15, 14.142135623731, 10, 17.8605710994918, 3.87298334620742, 9.9498743710662, 9.99949998749937, 13.2268665979513, 17.2916164657906, 0.99498743710662, 7.07106781186548, 14.6628782986152, 7.87400787401181, 15.8113883008419, 10, 14.142135623731, 9.99949998749937, 20.1243633439669, 0.99498743710662, 7.07106781186548, 9.48630591958745, 7.07036066972541, 10, 8.94371287553441, 17.6065328784517, 20.3715487874634, 14.142135623731, 16.4012194668567, 13.6011028964566, 7.07106781186548, 12.8452325786651, 5, 17.2916164657906, 9.9498743710662, 9.9498743710662, 19.3636256935523, 13.7477270848675, 8.66025403784439, 13.228756555323, 21.9089023002066, 0.99498743710662, 21.586801523153, 19.9997499984375, 0.99498743710662, 7.07106781186548, 8.36660026534076, 1, 17.3202193981485, 12.2474487139159, 13.710944533474, 6.48074069840786, 19.9997499984375, 20.6155281280883, 0.99498743710662, 18.411952639522, 12.8448433232951, 17.8871462229166, 9.9498743710662, 0.99498743710662, 19.9747340407826, 7.41619848709566, 9.99949998749937, 13.228756555323, 11.8321595661992, 12.4498995979887, 17.3205080756888, 20, 1, 9.48630591958745, 10.7210074153505, 6.70820393249937, 9.4339811320566, 12.6487153497895, 14.142135623731, 15.1647617851386, 0.99498743710662, 6.32455532033676, 22.3604561670821, 0.99498743710662, 12.2474487139159, 18.3027320365021, 15.8113883008419, 7.74273853361974, 7.07106781186548, 15, 8.94427190999916, 17.8885438199983, 18.3030052177231, 14.142135623731, 10, 5.47631262803723, 8.66025403784439, 17.464249196573, 12.2474487139159, 12.0411793442337, 8.83176086632785, 4.46654228682546, 17.3205080756888, 10, 19.9749843554382, 18.1656268815585, 0.1, 14.1417820659208, 4.47213595499958, 10, 0.1, 6.40312423743285, 20.9759385964014, 8.6596766683289, 15.8113883008419, 7.07106781186548, 0.99498743710662, 0.99498743710662, 2.23606797749979, 4.47101778122163, 7.07106781186548, 9.48630591958745, 22.1359436211787, 9.9498743710662, 14.142135623731, 6.32376470150495, 7.61577310586391, 15, 7.07106781186548, 14.142135623731, 0.99498743710662, 8.94427190999916, 15.8113883008419, 18.0277563773199, 5, 10, 13.6014705087354, 17.464249196573, 9.99949998749937, 22.3606797749979, 18.7082869338697, 13.710944533474, 10.4871349757691, 3.16069612585582, 18.5741756210067, 18.7082869338697, 4.46654228682546, 2.23606797749979, 10, 8.36660026534076, 11.13552872566, 11.1803398874989, 0.99498743710662, 8.94427190999916, 9.87420882906575, 0.316227766016838, 10, 19.3649167310371, 4.47213595499958, 9.98749217771909, 15.8113883008419, 8.36660026534076, 10, 20, 6.92820323027551, 0.99498743710662, 6.32455532033676, 17.1755640373177, 11.4017542509914, 17.606816861659, 8.94427190999916, 12.2474487139159, 9.99949998749937, 6.32455532033676, 8.66025403784439, 11.8321595661992, 7.07106781186548, 17.1026313764871, 10, 8.60232526704263, 11.6021549722455, 10, 11.1803398874989, 16.583123951777, 0.99498743710662, 8.66025403784439, 13.7836860091922, 12.2470404588211, 8.66025403784439, 1, 9.99949998749937, 14.1417820659208, 12.2470404588211, 18.411952639522, 9.9498743710662, 0.99498743710662, 8.66025403784439, 10.9544511501033, 13.6194713553794, 18.7082869338697, 12.2474487139159, 13.4149170701872, 15.556349186104, 3.16069612585582, 7.07106781186548, 19.7481644716667, 9.74679434480896, 16.2772847858603, 8.66025403784439, 3.87298334620742, 12.8452325786651, 7.07036066972541, 13.6747943311773, 10, 3.87298334620742, 5.47631262803723, 12.2474487139159, 8.42614977317636, 14.142135623731, 9.48683298050514, 12.2474487139159, 0.99498743710662, 0.99498743710662, 17.2916164657906, 5.47722557505166, 0.99498743710662, 0.1, 0.99498743710662, 13.3790881602597, 8.66025403784439, 8.36660026534076, 9.99949998749937, 9.99949998749937, 13.228756555323, 20, 12.2474487139159, 9.48683298050514, 10.9544511501033, 16.7332005306815, 5.74456264653803, 9.48630591958745, 10.7238052947636, 11.4017542509914, 3.08220700148449, 0.99498743710662, 0.99498743710662, 0.99498743710662, 18.7082869338697, 15.8110720699135, 14.142135623731, 17.606816861659, 15.6524758424985, 21.4009345590327, 16.2788205960997, 9.4339811320566, 0.99498743710662, 15.1191931001625, 15.8104395890816, 15.8110720699135, 15.8113883008419, 22.3606797749979, 10, 1, 17.2916164657906, 18.4390889145858, 0.99498743710662, 3.16069612585582, 7.07106781186548, 5, 9.99949998749937, 0.1, 15.7537297171178, 7.07106781186548, 14.142135623731, 0.99498743710662, 13.6014705087354, 1.41067359796659, 18.0277563773199, 11.1803398874989, 13.7840487520902, 12.2474487139159, 11.1803398874989, 15.1654211942827, 0.99498743710662, 0.99498743710662, 20, 14.1067359796659, 6.32455532033676, 8.66025403784439, 13.7473633835729, 9.99699954986495, 15.8107558326602, 17.2916164657906, 15, 4.47101778122163, 10.4880884817015, 14.142135623731, 15.7797338380595, 11.1803398874989, 1, 7.74596669241483, 13.4160351818263, 2.23606797749979, 9.48683298050514, 0.99498743710662, 7.07106781186548, 10.7238052947636, 15.7797338380595, 7.07106781186548, 15.9056593701739, 1, 8.94427190999916, 6.32455532033676, 10, 20.1990098767242, 2.23606797749979, 11.1803398874989, 7.07036066972541, 11.1781035958699, 12.6487153497895, 11.4017542509914, 0.99498743710662, 9.48630591958745, 10.5593560409714, 17.7482393492988, 14.1417820659208, 12.6491106406735, 13.6011028964566, 12.2474487139159, 8.66025403784439, 14.142135623731, 10.8627804912002, 14.1417820659208, 15.8113883008419, 9.9498743710662, 12.2474487139159, 8.88819441731559, 19.9997499984375, 7.74532116829251, 14.4913767461894, 9.61717214153932, 9.9498743710662, 12.4096736459909, 12.2470404588211, 13.0380213222713, 10.9544511501033, 13.9642400437689, 20.6155281280883, 14.142135623731, 17.3205080756888, 8.30662386291807, 17.3205080756888, 12.2065556157337, 12.2474487139159, 10.4880884817015, 9.9498743710662, 14.9993333185179, 9.99949998749937, 9.4339811320566, 19.4935886896179, 12.2470404588211, 3.74165738677394, 10.9544511501033, 12.2065556157337, 9.99949998749937, 20, 0.1, 0.1, 21.7944947177034, 9.9498743710662, 19.8743553354568, 13.228756555323, 7.07106781186548, 17.3205080756888, 19.9997499984375, 3.1543620591175, 7.68114574786861, 7.07106781186548, 15.2970585407784, 18.7080196707188, 8.48528137423857, 13.0384048104053, 0.99498743710662, 18.0277563773199, 11.8321595661992, 0.1, 12.1486624778203, 19.9997499984375, 9.74679434480896, 22.3383079036887, 6.70820393249937, 11.1803398874989, 9.10768905925098, 12.2474487139159, 0.99498743710662, 14.1417820659208, 13.6014705087354, 14.2123186004255, 17.0290927532855, 14.8320598704293, 9.48630591958745, 16.7032930884901, 12.2474487139159, 0.99498743710662, 7.07036066972541, 8.66025403784439, 12.2470404588211, 16.583123951777, 15.7797338380595, 0.99498743710662, 14.0712472794703, 17.3205080756888, 10.5356537528527, 10, 20.2484567313166, 12.2474487139159, 17.3205080756888, 10, 7.74596669241483, 10.6301458127346, 12.4498995979887, 9.48683298050514, 13.4164078649987, 9.99949998749937, 5.47722557505166, 26.4565681825894, 16.583123951777, 9.74628134213249, 0.99498743710662, 23.4520787991171, 0.99498743710662, 14.4913767461894, 13.3790881602597, 8.94427190999916, 12.4498995979887, 12.2474487139159, 14.456832294801, 20.9759385964014, 18.7080196707188, 14.142135623731, 12.2474487139159, 0.99498743710662, 10, 19.8746069143518, 3.16069612585582, 11.1803398874989, 14.4564864334319, 3.16069612585582, 0.1, 23.6641078428915, 7.74596669241483, 6.32376470150495, 13.228756555323, 15.1650914932947, 13.4164078649987, 0.1, 10.9544511501033, 7.07106781186548, 12.0415945787923, 3.1543620591175, 17.2916164657906, 23.6643191323985, 12.6471340627037, 7.06753139363385, 0.99498743710662, 12.6095202129185, 7.07106781186548, 23.6643191323985, 23.4499466950354, 8.94427190999916, 12.2470404588211, 21.2129677320266, 8.94371287553441, 15.0980131143141, 28.0178514522438, 13.6381816969859, 14.142135623731, 14.142135623731, 14.8323969741913, 18.7069505799315, 15, 0.99498743710662, 10, 0.1, 18.1656268815585, 7.41619848709566, 10, 15.8113883008419, 13.4164078649987, 11.3132665486145, 0.1, 9.48630591958745, 21.67925275465, 0.99498743710662, 7.07106781186548, 20, 9.99949998749937, 13.4160351818263, 14.9238064849421, 16.7332005306815, 16.8819430161341, 8.88819441731559, 9.9498743710662, 19.6837496427891, 15.4916106328554, 13.228756555323, 20.9284495364563, 11.8321595661992, 11.8317369815256, 9.99949998749937, 14.1067359796659, 8.94427190999916, 0.99498743710662, 14.142135623731, 13.6014705087354, 21.2129677320266, 7.07036066972541, 16.124205406779, 12.2065556157337, 13.228756555323, 12.2474487139159, 7.07106781186548, 1, 3.16069612585582, 17.8882643093174, 13.9624496418071, 8.94427190999916, 14.7648230602334, 0.99498743710662, 14.4913767461894, 12.2474487139159, 20.712315177208, 0.99498743710662, 14.6965982458527, 14.8320598704293, 14.1417820659208, 0.99498743710662, 3.16069612585582, 10.5830052442584, 9.48630591958745, 8.94427190999916, 16.9705627484771, 12.6471340627037, 17.8605710994918, 3.16227766016838, 9.99949998749937, 15.6511980372111, 7.48331477354788, 18.4390889145858, 11.4013157135482, 0.99498743710662, 12.2474487139159, 8.94259470176302, 0.99498743710662, 17.3205080756888, 21.4242852856285, 9.99949998749937, 14.4910317093021, 4.47101778122163, 8.94427190999916, 9.99849988748312, 14.8323969741913, 18.7082869338697, 13.0380213222713, 10, 14.1410749237814, 23.6641078428915, 9.48683298050514, 17.8885438199983, 13.1909059582729, 20, 14.456832294801, 18.7082869338697, 9.74679434480896, 0.99498743710662, 14.142135623731, 16.2788205960997, 0.99498743710662, 12.2470404588211, 14.1067359796659, 11.1803398874989, 8.66025403784439, 0.99498743710662, 9.99949998749937, 12.2474487139159, 0.99498743710662, 21.2129677320266, 13.4164078649987, 20, 15.8110720699135, 14.1067359796659, 24.7989919149953, 1, 0.99498743710662, 16.1245154965971, 16.2788205960997, 11.4013157135482, 7.07106781186548, 16.3110392066232, 22.0227155455452, 13.076696830622, 8.71779788708135, 3.16227766016838, 7.07106781186548, 11.3578166916005, 0.1, 1, 18.7082869338697, 7.07106781186548, 12.8062484748657, 15.809807082947, 18.411952639522, 14.142135623731, 12.6491106406735, 7.07106781186548, 19.8746069143518, 23.4520787991171, 28.2842712474619, 22.9128784747792, 13.228756555323, 14.1417820659208, 18.7080196707188, 7.07106781186548, 15.4916106328554, 23.789703655153, 13.4164078649987, 0.99498743710662, 25.0998007960223, 9.4339811320566, 19.9749843554382, 15.264009958068, 12.9375422704623, 8.06225774829855, 17.2916164657906, 0.99498743710662, 18.6010752377383, 0.1, 7.07106781186548, 0.99498743710662, 0.99498743710662, 15.8110720699135, 13.228756555323, 0.99498743710662, 11.4013157135482, 0.99498743710662, 15.4596248337403, 15.8113883008419, 12.2474487139159, 8.66025403784439, 17.8882643093174, 15.8104395890816, 13.7113092008021, 17.3205080756888, 14.1417820659208, 12.6716218377917, 13.490737563232, 17.3205080756888, 10.4403065089106, 11.1803398874989, 6.16279157525224, 20, 23.0215116792968, 0.99498743710662, 8.94371287553441, 10.9539947051293, 10, 0.99498743710662, 25.4949014510745, 19.9997499984375, 17.2916164657906, 12.2474487139159, 16.0928555576691, 16.7329017208612, 12.2474487139159, 18.7082869338697, 8.66025403784439, 0.99498743710662, 0.99498743710662, 15.8110720699135, 14.142135623731, 10, 9.48683298050514, 19.3649167310371, 0.99498743710662, 15.8113883008419, 0.99498743710662, 13.6014705087354, 24.0829815429901, 0.99498743710662, 22.3606797749979, 10.3440804327886, 17.3205080756888, 12.6487153497895, 6.70820393249937, 15.8110720699135, 16.7329017208612, 16.6430165534977, 9.74679434480896, 3.16227766016838, 19.4933321933424, 16.583123951777, 12.0415945787923, 16.583123951777, 0.99498743710662, 14.142135623731, 20.952326839757, 19.4679223339318, 0.99498743710662, 18.7082869338697, 13.4164078649987, 13.9588681489582, 18.9736659610103, 22.3606797749979, 21.523475555774, 0.99498743710662, 9.9498743710662, 28.2132947384739, 16.1229649878675, 16.583123951777, 10, 10, 0.99498743710662, 17.3205080756888, 11.1803398874989, 14.1417820659208, 15.6515174983131, 15.8104395890816, 13.228756555323, 14.1417820659208, 8.66025403784439, 22.3606797749979, 25.6904651573303, 18.9734024360419, 22.9128784747792, 0.99498743710662, 0.99498743710662, 14.4862003299692, 17.3202193981485, 12.2462239078011, 13.4160351818263, 13.2283785854503, 15.8113883008419, 15.8113883008419, 18.7080196707188, 14.142135623731, 3.16227766016838, 21.2120248915562, 18.7149672722129, 16.1245154965971, 21.9086740812857, 12.4096736459909, 15.4596248337403, 19.3907194296653, 0.99498743710662, 19.6214168703486, 17.971922546016, 12.7279220613579, 25.9807621135332, 3.16227766016838, 10.9544511501033, 15.1327459504216, 21.4473774620582, 18.7082869338697, 12.2466321901166, 10.2469507659596, 10.9544511501033, 5, 21.2129677320266, 17.832554500127, 20, 10.4880884817015, 14.1523849580203, 18.4388177495196, 28.8095470287195, 12.2474487139159, 23.0215116792968, 17.3205080756888, 8.36660026534076, 16.7329017208612, 15.5524917617725, 0.99498743710662, 10.7238052947636, 22.3383079036887, 19.3649167310371, 22.3383079036887, 8.94427190999916, 13.8924439894498, 9.9498743710662, 0.99498743710662, 19.9997499984375, 13.2283785854503, 12.6487153497895, 16.124205406779, 13.228756555323, 14.1417820659208, 13.4164078649987, 14.142135623731, 18.9472953214964, 18.7082869338697, 16.7329017208612, 11.8110118110177, 23.4518655974317, 18.3027320365021, 16.7329017208612, 30, 22.5831795812724, 15.3297097167559, 19.7481644716667, 20.9757002266909, 21.5148785727459, 0.99498743710662, 17.3202193981485, 15.4916106328554, 17.3205080756888, 10.4880884817015, 17.3202193981485, 12.2474487139159, 19.4923061744884, 15.0665191733194, 9.9498743710662, 0.99498743710662, 19.672315572906, 23.4520787991171, 15.8110720699135, 13.4145443455974, 24.2897097553676, 13.0380213222713, 13.2766712695615, 18.411952639522, 8.94427190999916, 12.8452325786651, 11.4017542509914, 19.7053292284093, 13.4145443455974, 20.7362002305148, 22.3606797749979, 21.4476105895272, 13.1529464379659, 14.8323969741913, 15.6524758424985, 15.8110720699135, 26.8350517048132, 17.3205080756888, 22.3606797749979, 17.0290927532855, 14.142135623731, 17.2907489716322, 12.6491106406735, 15.1654211942827, 12.2454073023318, 4.99899989997999, 10.3923048454133, 9.99949998749937, 15.1654211942827, 15.3293835492495, 12.328828005938, 26.4386081328046, 21.7944947177034, 14.456832294801, 9.48683298050514, 9.27092228421747, 0.99498743710662, 17.9161937922093, 18.411952639522, 22.9782505861521, 0.99498743710662, 12.123943252919, 23.2368242236326, 9.59166304662544, 14.1417820659208, 12.6491106406735, 18.6815416922694, 9.21900211519663, 15, 13.4164078649987, 21.2132034355964, 10, 10, 15.8113883008419, 22.7571966639127, 22.3606797749979, 19.9436706751791, 14.142135623731, 15.4596248337403, 16.124205406779, 15.8113883008419, 20.7362002305148, 9.99949998749937, 23.4518655974317, 17.1752729235957, 13.7836860091922, 19.9747340407826, 20.7362002305148, 14.1067359796659, 22.259604668547, 15.798417642283, 15.8113883008419, 9.9498743710662, 10.3923048454133, 15, 18.7082869338697, 9.10933587041339, 13.8003623140844, 10.0498756211209, 20.3715487874634, 21.6564078277077, 0.99498743710662, 15.8110720699135, 15.0956947504909, 14.1410749237814, 16.7332005306815, 13.114877048604, 14.1067359796659, 14.1417820659208, 21.1896201004171, 18.7080196707188, 0.99498743710662, 17.3205080756888, 17.606816861659, 1, 0.99498743710662, 14.6628782986152, 0.99498743710662, 13.0384048104053, 16.057085663345, 16.089748288895, 12.6491106406735, 14, 13.2283785854503, 23.4520787991171, 10, 20.614315414294, 22.3606797749979, 10.9553639829994, 0.99498743710662, 10.4880884817015, 5, 21.67925275465, 19.7481644716667, 18.0277563773199, 20.6637363513959, 0.99498743710662, 21.2129677320266, 14.0712472794703, 17.8871462229166, 20.4936575554487, 12.2474487139159, 20, 18.7082869338697, 22.270832943561, 22.3606797749979, 18.411952639522, 17.3205080756888, 9.9498743710662, 17.0279182520941, 23.4510127713069, 15.1327459504216, 16.0934769394311, 12.2462239078011, 25.4941169684302, 24.8191458354231, 0.99498743710662, 16.4617739019827, 13.228756555323, 20.7364413533277, 19.4933321933424, 17.3190646398701, 24.4948974278318, 16.583123951777, 24.207230324843, 23.4520787991171, 15.6524758424985, 13.4164078649987, 18.1656268815585, 15.8113883008419, 17.3202193981485, 12.8452325786651, 13.228756555323, 16.1245154965971, 18.4390889145858, 13.2283785854503, 19.7228294116235, 9.48683298050514, 18.7080196707188, 20, 17.3202193981485, 19.3649167310371, 21.049703085792, 12.4498995979887, 11.3137084989848, 16.583123951777, 12.2470404588211, 12.2306990805922, 14.4910317093021, 17.0293863659264, 28.0891438103763, 14.9666295470958, 15.4880599172395, 15.9022011055074, 0.99498743710662, 12.6487153497895, 25.2784493195291, 24.8995983903355, 22.3604561670821, 20.7352357112235, 18.0277563773199, 23.1300670124408, 17.0290927532855, 21.3232267727002, 10.2323017938292, 25.4949014510745, 21.2132034355964, 12.4498995979887, 17.606816861659, 15.8113883008419, 12.2470404588211, 26.0758508969506, 19.8997487421324, 0.99498743710662, 19.4933321933424, 10.2469507659596, 10.9087121146357, 19.4933321933424, 3.87298334620742, 23.43074902772, 20.9757002266909, 11.1781035958699, 16.2477690776303, 20, 23.9791576165636, 21.3072757526625, 21.2132034355964, 0.99498743710662, 27.367864366808, 23.4520787991171, 17.3205080756888, 24.9997999992, 18.7080196707188, 20.7364413533277, 21.1896201004171, 16.7032930884901, 19.1825441482615, 13.3790881602597, 26.0766178788584, 22.3604561670821, 19.3649167310371, 23.625621684942, 12.646738710039, 20.6155281280883, 15.7480157480236, 0.99498743710662, 14.142135623731, 14.1417820659208, 0.99498743710662, 0.99498743710662, 15.8113883008419, 25.2784493195291, 9.9498743710662, 10.9539947051293, 10, 19.824227601599, 10, 12.6487153497895, 0.99498743710662, 16.124205406779, 18.6815416922694, 13.6011028964566, 0.99498743710662, 3.16069612585582, 12.4092707279679, 19.7481644716667, 19.6211620450981, 24.0829815429901, 24.494693302836, 0.99498743710662, 14.1060270806489, 12.2474487139159, 22.15739154323, 16.1245154965971, 13.3790881602597, 23.9791576165636, 14.142135623731, 25.8843582110896, 19.4935886896179, 18.7082869338697, 14.6965982458527, 20.9759385964014, 18.9438644420826, 30.6431068920891, 16.7329017208612, 23.9791576165636, 23.3343095033901, 22.6936114358204, 11.9268604418766, 18.7080196707188, 0.99498743710662, 17.3205080756888, 15.7797338380595, 9.74679434480896, 5, 23.6966242321559, 30.8055189860518, 17.3205080756888, 17.8885438199983, 20.6046111344039, 23.2379000772445, 17.3205080756888, 0.99498743710662, 18.7080196707188, 17.3202193981485, 28.2840944702142, 10, 12.8452325786651, 20.6155281280883, 8.36660026534076, 18.6815416922694, 16.7332005306815, 22.3383079036887, 25.4950975679639, 17.747957628978, 12.2470404588211, 12.2470404588211, 14.8323969741913, 14.1417820659208, 28.2488937836511, 12.2466321901166, 22.8035085019828, 9.74679434480896, 18.7349939951952, 15.1641023473201, 13.7836860091922, 0.99498743710662, 16.0934769394311, 19.9749843554382, 10.2464628043047, 23.8537208837531, 14.6625372974803, 19.6214168703486, 14.1067359796659, 24.4948974278318, 11.5905133622286, 1, 8.94147638815872, 18.7082869338697, 6.32455532033676, 11.8781311661389, 19.3649167310371, 21.095023109729, 0.1, 25.4950975679639, 6.70820393249937, 17.1755640373177, 23.6643191323985, 14.8323969741913, 24.494693302836, 19.8746069143518, 19.4679223339318, 19.7481644716667, 24.6979756255447, 13.7072973266067, 13.228756555323, 16.7627563365933, 0.99498743710662, 9.9498743710662, 14.6628782986152, 14.142135623731, 17.1755640373177, 13.228756555323, 22.3383079036887, 12.2474487139159, 20.6155281280883, 3.16069612585582, 17.3205080756888, 24.2693221990232, 23.9791576165636, 4.99899989997999, 17.8885438199983, 24.3926218353009, 14.142135623731, 0.99498743710662, 16.8819430161341, 22.3356217733019, 18.7082869338697, 14.2828568570857, 11.1803398874989, 16.6430165534977, 0.99498743710662, 7.07106781186548, 21.4464449268404, 23.020642910223, 16.2788205960997, 21.4473774620582, 18.9799894625893, 16.1861051522595, 23.9528703916671, 17.7482393492988, 18.4390889145858, 20.976176963403, 13.4164078649987, 15.4269245152752, 20.9759385964014, 19.8746069143518, 24.474067908707, 15.4919333848297, 12.2474487139159, 17.3205080756888, 17.3205080756888, 12.9614813968157, 14.5941769209504, 4.47213595499958, 25.2980236382212, 18.7082869338697, 22.3356217733019, 20, 16.7182534973005, 31.6069612585582, 17.2626765016321, 22.3604561670821, 12.2470404588211, 11.1803398874989, 16.583123951777, 21.7623528139767, 22.8232337761326, 18.4388177495196, 0.99498743710662, 25.4558441227157, 25.4558441227157, 21.2132034355964, 14.8323969741913, 17.3205080756888, 13.9642400437689, 26.3628526529281, 0.99498743710662, 13.228756555323, 0.99498743710662, 9.9498743710662, 19.3649167310371, 26.4575131106459, 12.2474487139159, 18.1383571472171, 1, 26.4575131106459, 14.142135623731, 24.4744765010408, 22.9128784747792, 13.4160351818263, 17.3205080756888, 17.0293863659264, 7.07106781186548, 18.0277563773199, 10, 12.2474487139159, 18.0277563773199, 10, 19.9749843554382, 13.4164078649987, 10.4876117395716, 10.4880884817015, 7.21040914234414, 3.80657326213486, 6.7074585350936, 5.56686626388671, 1.99749843554382, 2.99833287011299, 11.3114985744595, 14.8323969741913, 2.16564078277077, 3.16069612585582, 11.8317369815256, 8.3660026296912, 11.7898261225516, 18.7082869338697, 6.32376470150495, 3.1543620591175, 5.29150262212918, 8.42555636145175, 15.9687194226713, 5.3619026473818, 18.4385465804656, 27.3861278752583, 0.99498743710662, 15.8113883008419, 18.2345825288105, 10.9064201276129, 12.2470404588211, 10, 14.1417820659208, 10, 8.66025403784439, 0.99498743710662, 14.6628782986152, 19.8746069143518, 0.99498743710662, 22.561028345357, 12.4498995979887, 10, 19.3649167310371, 14.1417820659208, 17, 25.3968501984006, 16.2788205960997, 0.99498743710662, 21.2132034355964, 24.494693302836, 27.0183271132763, 27.367864366808, 27.0183271132763, 22.3604561670821, 15, 22.3604561670821, 24.494693302836, 27.0183271132763, 18.7082869338697, 17.3205080756888, 18.7082869338697, 17.8885438199983, 20.6395251883371, 16.1245154965971, 15.3948043183407, 12.2474487139159, 13.4164078649987, 8.94427190999916, 10, 13.3790881602597, 12.0395182627878, 8.3660026296912, 17.7482393492988, 11.6189500386223, 12.6491106406735, 15.3297097167559, 17.1755640373177, 14.7986485869487, 17.2916164657906, 16.7332005306815, 18.1659021245849, 13.4164078649987, 22.3606797749979, 14.3178210632764, 14.422205101856, 20.4694894904587, 12.8452325786651, 25.4950975679639, 17.0293863659264, 18.6279360101972, 13.228756555323, 20, 27.0185121722126, 12.2474487139159, 15, 18.0277563773199, 27.3859453004639, 15, 12.2474487139159, 11.3137084989848, 10.2469507659596, 13.228756555323, 23.4520787991171, 18.7069505799315, 15.8113883008419, 12.0415945787923, 14.4913767461894, 9.48683298050514, 10, 18.2205927455722, 18.6708328684073, 17.5499287747842, 18.6815416922694, 8.36660026534076, 18.7082869338697, 26.6458251889485, 15.1657508881031, 16.583123951777, 19.4935886896179, 19.9997499984375, 16.7332005306815, 14.8323969741913, 22.9128784747792, 12.2065556157337, 18.7082869338697, 16.583123951777, 17.3205080756888, 18.0991712517452, 15.8113883008419, 20, 17, 19.3649167310371, 15.8113883008419, 22.9128784747792, 16.4301552031623, 21.3307290077015, 14.142135623731, 12.2470404588211, 20, 17.7482393492988, 22.3606797749979, 8.36660026534076, 21.2132034355964, 2.82842712474619, 13.9642400437689, 2.23383079036887, 16.124205406779, 10, 18.7082869338697, 19.4935886896179, 14.142135623731, 12.2474487139159, 19.4935886896179, 1.72916164657906, 18.7082869338697, 7.74596669241483, 21.9089023002066, 13.228756555323, 8.34805366537614, 13.228756555323, 3.87298334620742, 10.9489725545368, 15, 5.47631262803723, 10.9539947051293, 0.99498743710662, 12.2474487139159, 15.1327459504216, 14.1067359796659, 7.07106781186548, 12.2065556157337, 5.47265931700485, 11.4013157135482, 3.87298334620742, 15.1650914932947, 4.41588043316392, 8.36361166004257, 8.66025403784439, 7.07106781186548, 3.87169213652119, 10, 17.3202193981485, 0.99498743710662, 0.99498743710662, 5.47722557505166, 0.99498743710662, 5, 0.99498743710662, 10.7233390322231, 7.07036066972541, 3.16227766016838, 7.74532116829251, 5.47722557505166, 10, 5.47722557505166, 14.456832294801, 3.87169213652119, 0.99498743710662, 5, 0.99498743710662, 6.2449979983984, 10.9539947051293, 9.48630591958745, 5.74020905542647, 23.4520787991171, 11.3137084989848, 8.94427190999916, 0.99498743710662, 6.32455532033676, 0.99498743710662, 8.48469209812589, 14.456832294801, 9.59166304662544, 13.4160351818263, 0.99498743710662, 0.99498743710662, 0.99498743710662, 8.06225774829855, 0.99498743710662, 1, 11.3137084989848, 14.142135623731, 0.99498743710662, 5, 5.47722557505166, 7.58287544405155, 6.32376470150495, 8.66025403784439, 2.23606797749979, 6.32455532033676, 10.9539947051293, 8.6596766683289, 5.47265931700485, 6.32455532033676, 7.07106781186548, 11.3995613950713, 6.70820393249937, 11.3995613950713, 7.41552425658497, 13.7836860091922, 1, 8.36660026534076, 7.07036066972541, 0.99498743710662, 19.9997499984375, 12.2466321901166, 12.5299640861417, 12.6491106406735, 7.07106781186548, 10, 1, 0.99498743710662, 0.99498743710662, 0.99498743710662, 12.2474487139159, 14.9996666629629, 3.87298334620742, 8.66025403784439, 7.41619848709566, 15.8113883008419, 9.48630591958745, 9.99949998749937, 4.47101778122163, 7.87400787401181, 12.0208152801713, 8.65736680521277, 9.99749968742185, 24.2899156029822, 0.99498743710662, 5.47631262803723, 0.99498743710662, 5, 0.99498743710662, 0.99498743710662, 6.48074069840786, 12.2474487139159, 4.47213595499958, 0.99498743710662, 1, 4.47213595499958, 10, 14.0281859126546, 12.2829149634767, 6.07865116617165, 0.99498743710662, 0.99498743710662, 14.4879260075416, 8.94427190999916, 0.99498743710662, 7.27942305406136, 7.74596669241483, 0.99498743710662, 0.99498743710662, 8.30662386291807, 3.16069612585582, 7.74532116829251, 3.16227766016838, 9.99749968742185, 0.1, 8.66025403784439, 6.07865116617165, 11.3137084989848, 9.99949998749937, 9.99949998749937, 10, 11.4017542509914, 0.99498743710662, 9.99949998749937, 12.4895956699967, 10.9539947051293, 8.06225774829855, 8.06225774829855, 12.8452325786651, 8.18474190185616, 14.1067359796659, 7.46056298143779, 8.88819441731559, 11.9369175250565, 9.21954445729289, 9.99949998749937, 0.99498743710662, 7.68114574786861, 9.99749968742185, 10, 10, 10, 9.53939201416946, 22.3606797749979, 6.70820393249937, 4.47101778122163, 12.4498995979887, 5, 12.2474487139159, 20.3715487874634, 17.8882643093174, 9.9498743710662, 13.4145443455974, 10.2464628043047, 16.583123951777, 18.0277563773199, 3.16069612585582, 19.4933321933424, 16.7032930884901, 16.2785134456436, 24.0829815429901, 0.99498743710662, 15.809807082947, 4.46654228682546, 19.4933321933424, 12.2454073023318, 12.2454073023318, 17.6053968998146, 18.0249826629598, 18.7080196707188, 19.3649167310371, 17.887984794269, 19.3636256935523, 19.4933321933424, 8.94427190999916, 22.561028345357, 15.1327459504216, 17.3202193981485, 8.6596766683289, 15.8113883008419, 11.1798926649588, 20.2482097974117, 14.8320598704293, 10, 14.1417820659208, 0.99498743710662, 7.07036066972541, 12.2470404588211, 14.1417820659208, 6.07865116617165, 17.2626765016321, 17.8882643093174, 14.456832294801, 17.8882643093174, 20.4936575554487, 15.7797338380595, 15.7797338380595, 13.4160351818263, 12.6487153497895, 16.7329017208612, 15.1327459504216, 11.3995613950713, 15.6508785695884, 17.8605710994918, 17, 15.8110720699135, 7.06753139363385, 9.21954445729289, 0.99498743710662, 25.0798724079689, 20.712315177208, 23, 20.7364413533277, 7.22841614740048, 9.48683298050514, 9.32737905308882, 7.07106781186548, 15.8110720699135, 11.7898261225516, 14.8320598704293, 18.1656268815585, 20, 15.8113883008419, 12.8448433232951, 11.4013157135482, 12.8448433232951, 10.9539947051293, 14.8307113787573, 7.74532116829251, 16.7032930884901, 17.8605710994918, 20.6152855910366, 9.46044396421225, 15.4903195577109, 18.1656268815585, 20, 9.4339811320566, 10.9539947051293, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(1850L, 99L), .Dimnames = list( c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340", "1341", "1342", "1343", "1344", "1345", "1346", "1347", "1348", "1349", "1350", "1351", "1352", "1353", "1354", "1355", "1356", "1357", "1358", "1359", "1360", "1361", "1362", "1363", "1364", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1373", "1374", "1375", "1376", "1377", "1378", "1379", "1380", "1381", "1382", "1383", "1384", "1385", "1386", "1387", "1388", "1389", "1390", "1391", "1392", "1393", "1394", "1395", "1396", "1397", "1398", "1399", "1400", "1401", "1402", "1403", "1404", "1405", "1406", "1407", "1408", "1409", "1410", "1411", "1412", "1413", "1414", "1415", "1416", "1417", "1418", "1419", "1420", "1421", "1422", "1423", "1424", "1425", "1426", "1427", "1428", "1429", "1430", "1431", "1432", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1440", "1441", "1442", "1443", "1444", "1445", "1446", "1447", "1448", "1449", "1450", "1451", "1452", "1453", "1454", "1455", "1456", "1457", "1458", "1459", "1460", "1461", "1462", "1463", "1464", "1465", "1466", "1467", "1468", "1469", "1470", "1471", "1472", "1473", "1474", "1475", "1476", "1477", "1478", "1479", "1480", "1481", "1482", "1483", "1484", "1485", "1486", "1487", "1488", "1489", "1490", "1491", "1492", "1493", "1494", "1495", "1496", "1497", "1498", "1499", "1500", "1501", "1502", "1503", "1504", "1505", "1506", "1507", "1508", "1509", "1510", "1511", "1512", "1513", "1514", "1515", "1516", "1517", "1518", "1519", "1520", "1521", "1522", "1523", "1524", "1525", "1526", "1527", "1528", "1529", "1530", "1531", "1532", "1533", "1534", "1535", "1536", "1537", "1538", "1539", "1540", "1541", "1542", "1543", "1544", "1545", "1546", "1547", "1548", "1549", "1550", "1551", "1552", "1553", "1554", "1555", "1556", "1557", "1558", "1559", "1560", "1561", "1562", "1563", "1564", "1565", "1566", "1567", "1568", "1569", "1570", "1571", "1572", "1573", "1574", "1575", "1576", "1577", "1578", "1579", "1580", "1581", "1582", "1583", "1584", "1585", "1586", "1587", "1588", "1589", "1590", "1591", "1592", "1593", "1594", "1595", "1596", "1597", "1598", "1599", "1600", "1601", "1602", "1603", "1604", "1605", "1606", "1607", "1608", "1609", "1610", "1611", "1612", "1613", "1614", "1615", "1616", "1617", "1618", "1619", "1620", "1621", "1622", "1623", "1624", "1625", "1626", "1627", "1628", "1629", "1630", "1631", "1632", "1633", "1634", "1635", "1636", "1637", "1638", "1639", "1640", "1641", "1642", "1643", "1644", "1645", "1646", "1647", "1648", "1649", "1650", "1651", "1652", "1653", "1654", "1655", "1656", "1657", "1658", "1659", "1660", "1661", "1662", "1663", "1664", "1665", "1666", "1667", "1668", "1669", "1670", "1671", "1672", "1673", "1674", "1675", "1676", "1677", "1678", "1679", "1680", "1681", "1682", "1683", "1684", "1685", "1686", "1687", "1688", "1689", "1690", "1691", "1692", "1693", "1694", "1695", "1696", "1697", "1698", "1699", "1700", "1701", "1702", "1703", "1704", "1705", "1706", "1707", "1708", "1709", "1710", "1711", "1712", "1713", "1714", "1715", "1716", "1717", "1718", "1719", "1720", "1721", "1722", "1723", "1724", "1725", "1726", "1727", "1728", "1729", "1730", "1731", "1732", "1733", "1734", "1735", "1736", "1737", "1738", "1739", "1740", "1741", "1742", "1743", "1744", "1745", "1746", "1747", "1748", "1749", "1750", "1751", "1752", "1753", "1754", "1755", "1756", "1757", "1758", "1759", "1760", "1761", "1762", "1763", "1764", "1765", "1766", "1767", "1768", "1769", "1770", "1771", "1772", "1773", "1774", "1775", "1776", "1777", "1778", "1779", "1780", "1781", "1782", "1783", "1784", "1785", "1786", "1787", "1788", "1789", "1790", "1791", "1792", "1793", "1794", "1795", "1796", "1797", "1798", "1799", "1800", "1801", "1802", "1803", "1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", "1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", "1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", "1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", "1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", "1844", "1845", "1846", "1847", "1848", "1849", "1850"), c("D.chrs.n.log", "D.chrs.pnct11.n.log", "D.chrs.pnct13.n.log", "D.chrs.uppr.n.log", "D.ratio.weight.sum.wrds.n", "D.ratio.wrds.stop.n.wrds.n", "D.terms.post.stem.n.log", "D.terms.post.stop.n.log", "D.weight.post.stem.sum", "D.weight.post.stop.sum", "D.weight.sum", "D.weight.sum.stem.stop.Ratio", "D.wrds.n.log", "D.wrds.stop.n.log", "D.wrds.unq.n.log", "cellular.fctr1", "cellular.fctrUnknown", "color.fctrGold", "color.fctrSpace Gray", "color.fctrUnknown", "color.fctrWhite", "condition.fctrFor parts or not working", "condition.fctrManufacturer refurbished", "condition.fctrNew", "condition.fctrNew other (see details)", "condition.fctrSeller refurbished", "prdl.my.fctriPad1", "prdl.my.fctriPad2", "prdl.my.fctriPad3", "prdl.my.fctriPad4", "prdl.my.fctriPadAir", "prdl.my.fctriPadAir2", "prdl.my.fctriPadmini", "prdl.my.fctriPadmini2", "prdl.my.fctriPadmini3", "spdiff.cut.fctr(-100,-10]", "spdiff.cut.fctr(-10,-1]", "spdiff.cut.fctr(-1,0]", "spdiff.cut.fctr(0,1]", "spdiff.cut.fctr(1,10]", "spdiff.cut.fctr(10,100]", "spdiff.cut.fctr(100,1e+03]", "biddable", "sprice.d20nexp", "sprice.log10", "sprice.root2", "startprice.dcm1.is9", "startprice.dcm2.is9", "startprice.dgt1.is9", "startprice.dgt2.is9", "storage.fctr16", "storage.fctr32", "storage.fctr64", "storage.fctrUnknown", "cellular.fctr0:carrier.fctrNone", "cellular.fctr1:carrier.fctrNone", "cellular.fctrUnknown:carrier.fctrNone", "cellular.fctr0:carrier.fctrOther", "cellular.fctr1:carrier.fctrOther", "cellular.fctrUnknown:carrier.fctrOther", "cellular.fctr0:carrier.fctrSprint", "cellular.fctr1:carrier.fctrSprint", "cellular.fctrUnknown:carrier.fctrSprint", "cellular.fctr0:carrier.fctrT-Mobile", "cellular.fctr1:carrier.fctrT-Mobile", "cellular.fctrUnknown:carrier.fctrT-Mobile", "cellular.fctr0:carrier.fctrUnknown", "cellular.fctr1:carrier.fctrUnknown", "cellular.fctrUnknown:carrier.fctrUnknown", "cellular.fctr0:carrier.fctrVerizon", "cellular.fctr1:carrier.fctrVerizon", "cellular.fctrUnknown:carrier.fctrVerizon", "prdl.my.fctrUnknown:.clusterid.fctr2", "prdl.my.fctriPad1:.clusterid.fctr2", "prdl.my.fctriPad2:.clusterid.fctr2", "prdl.my.fctriPad3:.clusterid.fctr2", "prdl.my.fctriPad4:.clusterid.fctr2", "prdl.my.fctriPadAir:.clusterid.fctr2", "prdl.my.fctriPadAir2:.clusterid.fctr2", "prdl.my.fctriPadmini:.clusterid.fctr2", "prdl.my.fctriPadmini2:.clusterid.fctr2", "prdl.my.fctriPadmini3:.clusterid.fctr2", "prdl.my.fctrUnknown:.clusterid.fctr3", "prdl.my.fctriPad1:.clusterid.fctr3", "prdl.my.fctriPad2:.clusterid.fctr3", "prdl.my.fctriPad3:.clusterid.fctr3", "prdl.my.fctriPad4:.clusterid.fctr3", "prdl.my.fctriPadAir:.clusterid.fctr3", "prdl.my.fctriPadAir2:.clusterid.fctr3", "prdl.my.fctriPadmini:.clusterid.fctr3", "prdl.my.fctriPadmini2:.clusterid.fctr3", "prdl.my.fctriPadmini3:.clusterid.fctr3", "spdiff.cut.fctr(-100,-10]:biddable", "spdiff.cut.fctr(-10,-1]:biddable", "spdiff.cut.fctr(-1,0]:biddable", "spdiff.cut.fctr(0,1]:biddable", "spdiff.cut.fctr(1,10]:biddable", "spdiff.cut.fctr(10,100]:biddable", "spdiff.cut.fctr(100,1e+03]:biddable"))), y = structure(c(1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L), .Label = c("N", "Y"), class = "factor", .Names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340", "1341", "1342", "1343", "1344", "1345", "1346", "1347", "1348", "1349", "1350", "1351", "1352", "1353", "1354", "1355", "1356", "1357", "1358", "1359", "1360", "1361", "1362", "1363", "1364", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1373", "1374", "1375", "1376", "1377", "1378", "1379", "1380", "1381", "1382", "1383", "1384", "1385", "1386", "1387", "1388", "1389", "1390", "1391", "1392", "1393", "1394", "1395", "1396", "1397", "1398", "1399", "1400", "1401", "1402", "1403", "1404", "1405", "1406", "1407", "1408", "1409", "1410", "1411", "1412", "1413", "1414", "1415", "1416", "1417", "1418", "1419", "1420", "1421", "1422", "1423", "1424", "1425", "1426", "1427", "1428", "1429", "1430", "1431", "1432", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1440", "1441", "1442", "1443", "1444", "1445", "1446", "1447", "1448", "1449", "1450", "1451", "1452", "1453", "1454", "1455", "1456", "1457", "1458", "1459", "1460", "1461", "1462", "1463", "1464", "1465", "1466", "1467", "1468", "1469", "1470", "1471", "1472", "1473", "1474", "1475", "1476", "1477", "1478", "1479", "1480", "1481", "1482", "1483", "1484", "1485", "1486", "1487", "1488", "1489", "1490", "1491", "1492", "1493", "1494", "1495", "1496", "1497", "1498", "1499", "1500", "1501", "1502", "1503", "1504", "1505", "1506", "1507", "1508", "1509", "1510", "1511", "1512", "1513", "1514", "1515", "1516", "1517", "1518", "1519", "1520", "1521", "1522", "1523", "1524", "1525", "1526", "1527", "1528", "1529", "1530", "1531", "1532", "1533", "1534", "1535", "1536", "1537", "1538", "1539", "1540", "1541", "1542", "1543", "1544", "1545", "1546", "1547", "1548", "1549", "1550", "1551", "1552", "1553", "1554", "1555", "1556", "1557", "1558", "1559", "1560", "1561", "1562", "1563", "1564", "1565", "1566", "1567", "1568", "1569", "1570", "1571", "1572", "1573", "1574", "1575", "1576", "1577", "1578", "1579", "1580", "1581", "1582", "1583", "1584", "1585", "1586", "1587", "1588", "1589", "1590", "1591", "1592", "1593", "1594", "1595", "1596", "1597", "1598", "1599", "1600", "1601", "1602", "1603", "1604", "1605", "1606", "1607", "1608", "1609", "1610", "1611", "1612", "1613", "1614", "1615", "1616", "1617", "1618", "1619", "1620", "1621", "1622", "1623", "1624", "1625", "1626", "1627", "1628", "1629", "1630", "1631", "1632", "1633", "1634", "1635", "1636", "1637", "1638", "1639", "1640", "1641", "1642", "1643", "1644", "1645", "1646", "1647", "1648", "1649", "1650", "1651", "1652", "1653", "1654", "1655", "1656", "1657", "1658", "1659", "1660", "1661", "1662", "1663", "1664", "1665", "1666", "1667", "1668", "1669", "1670", "1671", "1672", "1673", "1674", "1675", "1676", "1677", "1678", "1679", "1680", "1681", "1682", "1683", "1684", "1685", "1686", "1687", "1688", "1689", "1690", "1691", "1692", "1693", "1694", "1695", "1696", "1697", "1698", "1699", "1700", "1701", "1702", "1703", "1704", "1705", "1706", "1707", "1708", "1709", "1710", "1711", "1712", "1713", "1714", "1715", "1716", "1717", "1718", "1719", "1720", "1721", "1722", "1723", "1724", "1725", "1726", "1727", "1728", "1729", "1730", "1731", "1732", "1733", "1734", "1735", "1736", "1737", "1738", "1739", "1740", "1741", "1742", "1743", "1744", "1745", "1746", "1747", "1748", "1749", "1750", "1751", "1752", "1753", "1754", "1755", "1756", "1757", "1758", "1759", "1760", "1761", "1762", "1763", "1764", "1765", "1766", "1767", "1768", "1769", "1770", "1771", "1772", "1773", "1774", "1775", "1776", "1777", "1778", "1779", "1780", "1781", "1782", "1783", "1784", "1785", "1786", "1787", "1788", "1789", "1790", "1791", "1792", "1793", "1794", "1795", "1796", "1797", "1798", "1799", "1800", "1801", "1802", "1803", "1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", "1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", "1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", "1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", "1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", "1844", "1845", "1846", "1847", "1848", "1849", "1850")), degree = 1, nprune = 64, keepxy = TRUE, glm = structure(list( family = function (link = "logit") { linktemp <- substitute(link) if (!is.character(linktemp)) linktemp <- deparse(linktemp) okLinks <- c("logit", "probit", "cloglog", "cauchit", "log") if (linktemp %in% okLinks) stats <- make.link(linktemp) else if (is.character(link)) { stats <- make.link(link) linktemp <- link } else { if (inherits(link, "link-glm")) { stats <- link if (!is.null(stats$name)) linktemp <- stats$name } else { stop(gettextf("link \"%s\" not available for binomial family; available links are %s", linktemp, paste(sQuote(okLinks), collapse = ", ")), domain = NA) } } variance <- function(mu) mu * (1 - mu) validmu <- function(mu) all(is.finite(mu)) && all(mu > 0 & mu < 1) dev.resids <- function(y, mu, wt) .Call(C_binomial_dev_resids, y, mu, wt) aic <- function(y, n, mu, wt, dev) { m <- if (any(n > 1)) n else wt -2 * sum(ifelse(m > 0, (wt/m), 0) * dbinom(round(m * y), round(m), mu, log = TRUE)) } initialize <- expression({ if (NCOL(y) == 1) { if (is.factor(y)) y <- y != levels(y)[1L] n <- rep.int(1, nobs) y[weights == 0] <- 0 if (any(y < 0 | y > 1)) stop("y values must be 0 <= y <= 1") mustart <- (weights * y + 0.5)/(weights + 1) m <- weights * y if (any(abs(m - round(m)) > 0.001)) warning("non-integer #successes in a binomial glm!") } else if (NCOL(y) == 2) { if (any(abs(y - round(y)) > 0.001)) warning("non-integer counts in a binomial glm!") n <- y[, 1] + y[, 2] y <- ifelse(n == 0, 0, y[, 1]/n) weights <- weights * n mustart <- (n * y + 0.5)/(n + 1) } else stop("for the 'binomial' family, y must be a vector of 0 and 1's\nor a 2 column matrix where col 1 is no. successes and col 2 is no. failures") }) simfun <- function(object, nsim) { ftd <- fitted(object) n <- length(ftd) ntot <- n * nsim wts <- object$prior.weights if (any(wts%%1 != 0)) stop("cannot simulate from non-integer prior.weights") if (!is.null(m <- object$model)) { y <- model.response(m) if (is.factor(y)) { yy <- factor(1 + rbinom(ntot, size = 1, prob = ftd), labels = levels(y)) split(yy, rep(seq_len(nsim), each = n)) } else if (is.matrix(y) && ncol(y) == 2) { yy <- vector("list", nsim) for (i in seq_len(nsim)) { Y <- rbinom(n, size = wts, prob = ftd) YY <- cbind(Y, wts - Y) colnames(YY) <- colnames(y) yy[[i]] <- YY } yy } else rbinom(ntot, size = wts, prob = ftd)/wts } else rbinom(ntot, size = wts, prob = ftd)/wts } structure(list(family = "binomial", link = linktemp, linkfun = stats$linkfun, linkinv = stats$linkinv, variance = variance, dev.resids = dev.resids, aic = aic, mu.eta = stats$mu.eta, initialize = initialize, validmu = validmu, valideta = stats$valideta, simulate = simfun), class = "family") }), .Names = "family"))
##
## Out of bag statistics:
##
## Accuracy Kappa
## 0% 0.7713 0.5379
## 2.5% 0.7753 0.5451
## 25% 0.8007 0.5982
## 50% 0.8118 0.6213
## 75% 0.8180 0.6313
## 97.5% 0.8377 0.6703
## 100% 0.8417 0.6767
##
## Model Selection Statistics:
##
## Num Terms Num Variables
## Length:1509 Length:1509
## Class :character Class :character
## Mode :character Mode :character
## sold.fctr sold.fctr.predict.Final.bagEarth.N
## 1 N 844
## 2 Y 125
## sold.fctr.predict.Final.bagEarth.Y
## 1 151
## 2 730
## Prediction
## Reference N Y
## N 844 151
## Y 125 730
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 8.508108e-01 7.005437e-01 8.337508e-01 8.667500e-01 5.378378e-01
## AccuracyPValue McnemarPValue
## 3.421067e-180 1.323695e-01
## id
## 1 Final.bagEarth
## feats
## 1 spdiff.cut.fctr*biddable,sprice.d20nexp,sprice.log10,sprice.root2,cellular.fctr,prdl.my.fctr,D.ratio.wrds.stop.n.wrds.n,storage.fctr,condition.fctr,D.weight.sum.stem.stop.Ratio,color.fctr,startprice.dcm2.is9,D.chrs.pnct11.n.log,D.wrds.stop.n.log,startprice.dcm1.is9,startprice.dgt2.is9,D.ratio.weight.sum.wrds.n,D.chrs.pnct13.n.log,D.weight.post.stop.sum,D.weight.post.stem.sum,D.weight.sum,D.wrds.n.log,D.chrs.uppr.n.log,D.chrs.n.log,D.wrds.unq.n.log,D.terms.post.stem.n.log,D.terms.post.stop.n.log,startprice.dgt1.is9,cellular.fctr:carrier.fctr,prdl.my.fctr:.clusterid.fctr
## max.nTuningRuns min.elapsedtime.everything min.elapsedtime.final
## 1 1 137.425 68.459
## max.AUCpROC.fit max.Sens.fit max.Spec.fit max.AUCROCR.fit
## 1 0.8484146 0.9015075 0.7953216 0.931489
## opt.prob.threshold.fit max.f.score.fit max.Accuracy.fit
## 1 0.4 0.8410138 0.8111806
## max.AccuracyLower.fit max.AccuracyUpper.fit max.Kappa.fit
## 1 0.8337508 0.86675 0.619129
rm(ret_lst)
glb_chunks_df <- myadd_chunk(glb_chunks_df, "fit.data.training", major.inc=FALSE)
## label step_major step_minor label_minor bgn end
## 14 fit.data.training 7 0 0 924.675 1092.832
## 15 fit.data.training 7 1 1 1092.833 NA
## elapsed
## 14 168.157
## 15 NA
#stop(here"); glb_to_sav()
if (glb_is_classification && glb_is_binomial)
prob_threshold <- glb_models_df[glb_models_df$id == glb_sel_mdl_id,
"opt.prob.threshold.OOB"] else
prob_threshold <- NULL
if (grepl("Ensemble", glb_fin_mdl_id)) {
# Get predictions for each model in ensemble; Outliers that have been moved to OOB might not have been predicted yet
mdlEnsembleComps <- unlist(str_split(subset(glb_models_df,
id == glb_fin_mdl_id)$feats, ","))
if (glb_is_classification && glb_is_binomial)
mdlEnsembleComps <- gsub("\\.prob$", "", mdlEnsembleComps)
mdlEnsembleComps <- gsub(paste0("^",
gsub(".", "\\.", glb_rsp_var_out, fixed = TRUE)),
"", mdlEnsembleComps)
for (mdl_id in mdlEnsembleComps) {
glb_trnobs_df <- glb_get_predictions(df=glb_trnobs_df, mdl_id=mdl_id,
rsp_var_out=glb_rsp_var_out,
prob_threshold_def=prob_threshold)
glb_newobs_df <- glb_get_predictions(df=glb_newobs_df, mdl_id=mdl_id,
rsp_var_out=glb_rsp_var_out,
prob_threshold_def=prob_threshold)
}
}
glb_trnobs_df <- glb_get_predictions(df=glb_trnobs_df, mdl_id=glb_fin_mdl_id,
rsp_var_out=glb_rsp_var_out,
prob_threshold_def=prob_threshold)
## Warning in glb_get_predictions(df = glb_trnobs_df, mdl_id =
## glb_fin_mdl_id, : Using default probability threshold: 0.5
glb_featsimp_df <- myget_feats_importance(mdl=glb_fin_mdl,
featsimp_df=glb_featsimp_df)
glb_featsimp_df[, paste0(glb_fin_mdl_id, ".importance")] <- glb_featsimp_df$importance
print(glb_featsimp_df)
## CSM.X.bagEarth.importance
## biddable 100.00000000
## spdiff.cut.fctr(-10,-1] 59.43297171
## spdiff.cut.fctr(10,100] 63.91698828
## spdiff.cut.fctr(1,10] 54.11003294
## spdiff.cut.fctr(-1,0] 56.73370396
## spdiff.cut.fctr(0,1] 50.72618776
## spdiff.cut.fctr(-100,-10] 46.54349726
## spdiff.cut.fctr(100,1e+03]:biddable 42.56274353
## sprice.d20nexp 26.61299348
## prdl.my.fctriPadAir 19.81560245
## D.terms.post.stop.n.log 16.27642872
## prdl.my.fctriPadAir2 20.20338098
## spdiff.cut.fctr(-100,-10]:biddable 0.08594036
## spdiff.cut.fctr(10,100]:biddable 0.08594036
## D.chrs.n.log 25.32510965
## D.weight.sum.stem.stop.Ratio 40.22875015
## startprice.dcm1.is9 0.08594036
## D.wrds.n.log 25.47867052
## D.ratio.weight.sum.wrds.n 11.48014772
## prdl.my.fctriPad4:.clusterid.fctr3 0.08594036
## sprice.root2 32.56884802
## D.chrs.uppr.n.log 22.30668254
## D.weight.post.stem.sum 18.95279661
## spdiff.cut.fctr(1,10]:biddable 0.08594036
## prdl.my.fctriPad3 0.08594036
## D.ratio.wrds.stop.n.wrds.n 17.57323375
## condition.fctrSellerrefurbished 0.08594036
## sprice.log10 48.68845482
## D.chrs.pnct11.n.log 27.94079067
## prdl.my.fctrUnknown:.clusterid.fctr2 0.08594036
## D.chrs.pnct13.n.log 3.41799947
## D.terms.post.stem.n.log 6.59278140
## D.weight.post.stop.sum 29.84596975
## D.weight.sum 3.05937743
## D.wrds.unq.n.log 1.76677745
## cellular.fctr1 1.86952154
## cellular.fctrUnknown 5.44217739
## D.wrds.stop.n.log 12.44050615
## cellular.fctr0:carrier.fctrNone 0.08594036
## cellular.fctr0:carrier.fctrOther 0.08594036
## cellular.fctr0:carrier.fctrSprint 0.08594036
## cellular.fctr0:carrier.fctrT-Mobile 0.08594036
## cellular.fctr0:carrier.fctrUnknown 0.08594036
## cellular.fctr0:carrier.fctrVerizon 0.08594036
## cellular.fctr1:carrier.fctrNone 0.08594036
## cellular.fctr1:carrier.fctrOther 0.08594036
## cellular.fctr1:carrier.fctrSprint 0.08594036
## cellular.fctr1:carrier.fctrT-Mobile 0.08594036
## cellular.fctr1:carrier.fctrUnknown 0.08594036
## cellular.fctr1:carrier.fctrVerizon 0.08594036
## cellular.fctrUnknown:carrier.fctrNone 0.08594036
## cellular.fctrUnknown:carrier.fctrOther 0.08594036
## cellular.fctrUnknown:carrier.fctrSprint 0.08594036
## cellular.fctrUnknown:carrier.fctrT-Mobile 0.08594036
## cellular.fctrUnknown:carrier.fctrUnknown 0.08594036
## cellular.fctrUnknown:carrier.fctrVerizon 0.08594036
## color.fctrGold 0.83989382
## color.fctrSpaceGray 0.13258152
## color.fctrUnknown 0.08594036
## color.fctrWhite 0.00000000
## condition.fctrForpartsornotworking 0.08594036
## condition.fctrManufacturerrefurbished 0.08594036
## condition.fctrNew 11.86812409
## condition.fctrNewother(seedetails) 9.58824839
## prdl.my.fctrUnknown:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad1 34.69591329
## prdl.my.fctriPad1:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad1:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad2 0.08594036
## prdl.my.fctriPad2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad3:.clusterid.fctr2 0.08594036
## prdl.my.fctriPad3:.clusterid.fctr3 0.08594036
## prdl.my.fctriPad4 0.08594036
## prdl.my.fctriPad4:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadAir:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadAir:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini 0.08594036
## prdl.my.fctriPadmini2 0.08594036
## prdl.my.fctriPadmini2:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini2:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini3 0.08594036
## prdl.my.fctriPadmini3:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini3:.clusterid.fctr3 0.08594036
## prdl.my.fctriPadmini:.clusterid.fctr2 0.08594036
## prdl.my.fctriPadmini:.clusterid.fctr3 0.08594036
## spdiff.cut.fctr(-1,0]:biddable 0.08594036
## spdiff.cut.fctr(-10,-1]:biddable 0.08594036
## spdiff.cut.fctr(0,1]:biddable 0.08594036
## spdiff.cut.fctr(100,1e+03] 0.08594036
## startprice.dcm2.is9 7.22097729
## startprice.dgt1.is9 0.08594036
## startprice.dgt2.is9 0.08594036
## storage.fctr16 0.08594036
## storage.fctr32 0.08594036
## storage.fctr64 0.08594036
## storage.fctrUnknown 0.08594036
## importance
## biddable 100.00000000
## spdiff.cut.fctr(-10,-1] 62.23574674
## spdiff.cut.fctr(10,100] 56.78356921
## spdiff.cut.fctr(1,10] 56.13727294
## spdiff.cut.fctr(-1,0] 53.89429580
## spdiff.cut.fctr(0,1] 52.24063443
## spdiff.cut.fctr(-100,-10] 46.82987715
## spdiff.cut.fctr(100,1e+03]:biddable 44.58103535
## sprice.d20nexp 40.18996089
## prdl.my.fctriPadAir 38.95568709
## D.terms.post.stop.n.log 35.88702119
## prdl.my.fctriPadAir2 32.47450225
## spdiff.cut.fctr(-100,-10]:biddable 30.55450277
## spdiff.cut.fctr(10,100]:biddable 27.68518572
## D.chrs.n.log 26.24851068
## D.weight.sum.stem.stop.Ratio 25.83513037
## startprice.dcm1.is9 25.44863479
## D.wrds.n.log 22.22935732
## D.ratio.weight.sum.wrds.n 19.29883697
## prdl.my.fctriPad4:.clusterid.fctr3 18.71030280
## sprice.root2 17.33528266
## D.chrs.uppr.n.log 15.81313193
## D.weight.post.stem.sum 15.39065481
## spdiff.cut.fctr(1,10]:biddable 12.60741326
## prdl.my.fctriPad3 11.37298748
## D.ratio.wrds.stop.n.wrds.n 10.83625134
## condition.fctrSellerrefurbished 8.94732463
## sprice.log10 8.75365621
## D.chrs.pnct11.n.log 5.52740825
## prdl.my.fctrUnknown:.clusterid.fctr2 5.01260439
## D.chrs.pnct13.n.log 2.84658578
## D.terms.post.stem.n.log 1.76942245
## D.weight.post.stop.sum 1.02122813
## D.weight.sum 0.23756467
## D.wrds.unq.n.log 0.08725219
## cellular.fctr1 0.06031680
## cellular.fctrUnknown 0.04326862
## D.wrds.stop.n.log 0.04031255
## cellular.fctr0:carrier.fctrNone 0.00000000
## cellular.fctr0:carrier.fctrOther 0.00000000
## cellular.fctr0:carrier.fctrSprint 0.00000000
## cellular.fctr0:carrier.fctrT-Mobile 0.00000000
## cellular.fctr0:carrier.fctrUnknown 0.00000000
## cellular.fctr0:carrier.fctrVerizon 0.00000000
## cellular.fctr1:carrier.fctrNone 0.00000000
## cellular.fctr1:carrier.fctrOther 0.00000000
## cellular.fctr1:carrier.fctrSprint 0.00000000
## cellular.fctr1:carrier.fctrT-Mobile 0.00000000
## cellular.fctr1:carrier.fctrUnknown 0.00000000
## cellular.fctr1:carrier.fctrVerizon 0.00000000
## cellular.fctrUnknown:carrier.fctrNone 0.00000000
## cellular.fctrUnknown:carrier.fctrOther 0.00000000
## cellular.fctrUnknown:carrier.fctrSprint 0.00000000
## cellular.fctrUnknown:carrier.fctrT-Mobile 0.00000000
## cellular.fctrUnknown:carrier.fctrUnknown 0.00000000
## cellular.fctrUnknown:carrier.fctrVerizon 0.00000000
## color.fctrGold 0.00000000
## color.fctrSpaceGray 0.00000000
## color.fctrUnknown 0.00000000
## color.fctrWhite 0.00000000
## condition.fctrForpartsornotworking 0.00000000
## condition.fctrManufacturerrefurbished 0.00000000
## condition.fctrNew 0.00000000
## condition.fctrNewother(seedetails) 0.00000000
## prdl.my.fctrUnknown:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad1 0.00000000
## prdl.my.fctriPad1:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad1:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad2 0.00000000
## prdl.my.fctriPad2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad3:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad3:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad4 0.00000000
## prdl.my.fctriPad4:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadAir:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini 0.00000000
## prdl.my.fctriPadmini2 0.00000000
## prdl.my.fctriPadmini2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini3 0.00000000
## prdl.my.fctriPadmini3:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini3:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini:.clusterid.fctr3 0.00000000
## spdiff.cut.fctr(-1,0]:biddable 0.00000000
## spdiff.cut.fctr(-10,-1]:biddable 0.00000000
## spdiff.cut.fctr(0,1]:biddable 0.00000000
## spdiff.cut.fctr(100,1e+03] 0.00000000
## startprice.dcm2.is9 0.00000000
## startprice.dgt1.is9 0.00000000
## startprice.dgt2.is9 0.00000000
## storage.fctr16 0.00000000
## storage.fctr32 0.00000000
## storage.fctr64 0.00000000
## storage.fctrUnknown 0.00000000
## Final.bagEarth.importance
## biddable 100.00000000
## spdiff.cut.fctr(-10,-1] 62.23574674
## spdiff.cut.fctr(10,100] 56.78356921
## spdiff.cut.fctr(1,10] 56.13727294
## spdiff.cut.fctr(-1,0] 53.89429580
## spdiff.cut.fctr(0,1] 52.24063443
## spdiff.cut.fctr(-100,-10] 46.82987715
## spdiff.cut.fctr(100,1e+03]:biddable 44.58103535
## sprice.d20nexp 40.18996089
## prdl.my.fctriPadAir 38.95568709
## D.terms.post.stop.n.log 35.88702119
## prdl.my.fctriPadAir2 32.47450225
## spdiff.cut.fctr(-100,-10]:biddable 30.55450277
## spdiff.cut.fctr(10,100]:biddable 27.68518572
## D.chrs.n.log 26.24851068
## D.weight.sum.stem.stop.Ratio 25.83513037
## startprice.dcm1.is9 25.44863479
## D.wrds.n.log 22.22935732
## D.ratio.weight.sum.wrds.n 19.29883697
## prdl.my.fctriPad4:.clusterid.fctr3 18.71030280
## sprice.root2 17.33528266
## D.chrs.uppr.n.log 15.81313193
## D.weight.post.stem.sum 15.39065481
## spdiff.cut.fctr(1,10]:biddable 12.60741326
## prdl.my.fctriPad3 11.37298748
## D.ratio.wrds.stop.n.wrds.n 10.83625134
## condition.fctrSellerrefurbished 8.94732463
## sprice.log10 8.75365621
## D.chrs.pnct11.n.log 5.52740825
## prdl.my.fctrUnknown:.clusterid.fctr2 5.01260439
## D.chrs.pnct13.n.log 2.84658578
## D.terms.post.stem.n.log 1.76942245
## D.weight.post.stop.sum 1.02122813
## D.weight.sum 0.23756467
## D.wrds.unq.n.log 0.08725219
## cellular.fctr1 0.06031680
## cellular.fctrUnknown 0.04326862
## D.wrds.stop.n.log 0.04031255
## cellular.fctr0:carrier.fctrNone 0.00000000
## cellular.fctr0:carrier.fctrOther 0.00000000
## cellular.fctr0:carrier.fctrSprint 0.00000000
## cellular.fctr0:carrier.fctrT-Mobile 0.00000000
## cellular.fctr0:carrier.fctrUnknown 0.00000000
## cellular.fctr0:carrier.fctrVerizon 0.00000000
## cellular.fctr1:carrier.fctrNone 0.00000000
## cellular.fctr1:carrier.fctrOther 0.00000000
## cellular.fctr1:carrier.fctrSprint 0.00000000
## cellular.fctr1:carrier.fctrT-Mobile 0.00000000
## cellular.fctr1:carrier.fctrUnknown 0.00000000
## cellular.fctr1:carrier.fctrVerizon 0.00000000
## cellular.fctrUnknown:carrier.fctrNone 0.00000000
## cellular.fctrUnknown:carrier.fctrOther 0.00000000
## cellular.fctrUnknown:carrier.fctrSprint 0.00000000
## cellular.fctrUnknown:carrier.fctrT-Mobile 0.00000000
## cellular.fctrUnknown:carrier.fctrUnknown 0.00000000
## cellular.fctrUnknown:carrier.fctrVerizon 0.00000000
## color.fctrGold 0.00000000
## color.fctrSpaceGray 0.00000000
## color.fctrUnknown 0.00000000
## color.fctrWhite 0.00000000
## condition.fctrForpartsornotworking 0.00000000
## condition.fctrManufacturerrefurbished 0.00000000
## condition.fctrNew 0.00000000
## condition.fctrNewother(seedetails) 0.00000000
## prdl.my.fctrUnknown:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad1 0.00000000
## prdl.my.fctriPad1:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad1:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad2 0.00000000
## prdl.my.fctriPad2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad3:.clusterid.fctr2 0.00000000
## prdl.my.fctriPad3:.clusterid.fctr3 0.00000000
## prdl.my.fctriPad4 0.00000000
## prdl.my.fctriPad4:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadAir:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadAir:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini 0.00000000
## prdl.my.fctriPadmini2 0.00000000
## prdl.my.fctriPadmini2:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini2:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini3 0.00000000
## prdl.my.fctriPadmini3:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini3:.clusterid.fctr3 0.00000000
## prdl.my.fctriPadmini:.clusterid.fctr2 0.00000000
## prdl.my.fctriPadmini:.clusterid.fctr3 0.00000000
## spdiff.cut.fctr(-1,0]:biddable 0.00000000
## spdiff.cut.fctr(-10,-1]:biddable 0.00000000
## spdiff.cut.fctr(0,1]:biddable 0.00000000
## spdiff.cut.fctr(100,1e+03] 0.00000000
## startprice.dcm2.is9 0.00000000
## startprice.dgt1.is9 0.00000000
## startprice.dgt2.is9 0.00000000
## storage.fctr16 0.00000000
## storage.fctr32 0.00000000
## storage.fctr64 0.00000000
## storage.fctrUnknown 0.00000000
if (glb_is_classification && glb_is_binomial)
glb_analytics_diag_plots(obs_df=glb_trnobs_df, mdl_id=glb_fin_mdl_id,
prob_threshold=glb_models_df[glb_models_df$id == glb_sel_mdl_id,
"opt.prob.threshold.OOB"]) else
glb_analytics_diag_plots(obs_df=glb_trnobs_df, mdl_id=glb_fin_mdl_id)
## Warning in glb_analytics_diag_plots(obs_df = glb_trnobs_df, mdl_id =
## glb_fin_mdl_id, : Limiting important feature scatter plots to 5 out of 32
## [1] "Min/Max Boundaries: "
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 118 10118 Y 0.3149950
## 15 10015 Y 0.3369621
## 3 10003 Y 0.3191877
## 17 10017 Y 0.4754662
## 113 10113 Y NA
## 11 10011 Y NA
## 123 10123 Y NA
## 1 10001 N 0.2966052
## 2 10002 Y 0.9937421
## 22 10022 N 0.3194450
## 20 10020 N 0.5014874
## 127 10127 N NA
## 120 10120 N 0.5308314
## 103 10103 N NA
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 118 N TRUE
## 15 N TRUE
## 3 N TRUE
## 17 N TRUE
## 113 <NA> NA
## 11 <NA> NA
## 123 <NA> NA
## 1 N FALSE
## 2 Y FALSE
## 22 N FALSE
## 20 Y TRUE
## 127 <NA> NA
## 120 Y TRUE
## 103 <NA> NA
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 118 0.685004977
## 15 0.663037896
## 3 0.680812266
## 17 0.524533754
## 113 NA
## 11 NA
## 123 NA
## 1 0.296605249
## 2 0.006257932
## 22 0.319444952
## 20 0.501487420
## 127 NA
## 120 0.530831427
## 103 NA
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 118 FALSE
## 15 FALSE
## 3 FALSE
## 17 FALSE
## 113 NA
## 11 NA
## 123 NA
## 1 TRUE
## 2 TRUE
## 22 TRUE
## 20 FALSE
## 127 NA
## 120 FALSE
## 103 NA
## sold.fctr.predict.Final.bagEarth.prob sold.fctr.predict.Final.bagEarth
## 118 0.3134161 N
## 15 0.3154974 N
## 3 0.3564300 N
## 17 0.4069324 N
## 113 0.4725318 N
## 11 0.4732926 N
## 123 0.4830287 N
## 1 0.3793936 N
## 2 0.9815706 Y
## 22 0.5019594 Y
## 20 0.5404364 Y
## 127 0.6106356 Y
## 120 0.6566246 Y
## 103 0.9464569 Y
## sold.fctr.predict.Final.bagEarth.err
## 118 TRUE
## 15 TRUE
## 3 TRUE
## 17 TRUE
## 113 TRUE
## 11 TRUE
## 123 TRUE
## 1 FALSE
## 2 FALSE
## 22 TRUE
## 20 TRUE
## 127 TRUE
## 120 TRUE
## 103 TRUE
## sold.fctr.predict.Final.bagEarth.err.abs
## 118 0.68658390
## 15 0.68450259
## 3 0.64357004
## 17 0.59306758
## 113 0.52746824
## 11 0.52670745
## 123 0.51697126
## 1 0.37939364
## 2 0.01842937
## 22 0.50195937
## 20 0.54043636
## 127 0.61063560
## 120 0.65662462
## 103 0.94645687
## sold.fctr.predict.Final.bagEarth.accurate
## 118 FALSE
## 15 FALSE
## 3 FALSE
## 17 FALSE
## 113 FALSE
## 11 FALSE
## 123 FALSE
## 1 TRUE
## 2 TRUE
## 22 FALSE
## 20 FALSE
## 127 FALSE
## 120 FALSE
## 103 FALSE
## sold.fctr.predict.Final.bagEarth.error .label
## 118 -0.186583903 10118
## 15 -0.184502587 10015
## 3 -0.143570045 10003
## 17 -0.093067578 10017
## 113 -0.027468243 10113
## 11 -0.026707446 10011
## 123 -0.016971261 10123
## 1 0.000000000 10001
## 2 0.000000000 10002
## 22 0.001959368 10022
## 20 0.040436363 10020
## 127 0.110635600 10127
## 120 0.156624618 10120
## 103 0.446456868 10103
## [1] "Inaccurate: "
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 1688 11697 Y 0.02229373
## 1696 11705 Y NA
## 1352 11359 Y 0.09156986
## 457 10458 Y NA
## 834 10837 Y 0.08685924
## 101 10101 Y 0.17032405
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 1688 N TRUE
## 1696 <NA> NA
## 1352 N TRUE
## 457 <NA> NA
## 834 N TRUE
## 101 N TRUE
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 1688 0.9777063
## 1696 NA
## 1352 0.9084301
## 457 NA
## 834 0.9131408
## 101 0.8296760
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 1688 FALSE
## 1696 NA
## 1352 FALSE
## 457 NA
## 834 FALSE
## 101 FALSE
## sold.fctr.predict.Final.bagEarth.prob
## 1688 0.009995731
## 1696 0.058705847
## 1352 0.064210375
## 457 0.077218497
## 834 0.084851966
## 101 0.086560990
## sold.fctr.predict.Final.bagEarth sold.fctr.predict.Final.bagEarth.err
## 1688 N TRUE
## 1696 N TRUE
## 1352 N TRUE
## 457 N TRUE
## 834 N TRUE
## 101 N TRUE
## sold.fctr.predict.Final.bagEarth.err.abs
## 1688 0.9900043
## 1696 0.9412942
## 1352 0.9357896
## 457 0.9227815
## 834 0.9151480
## 101 0.9134390
## sold.fctr.predict.Final.bagEarth.accurate
## 1688 FALSE
## 1696 FALSE
## 1352 FALSE
## 457 FALSE
## 834 FALSE
## 101 FALSE
## sold.fctr.predict.Final.bagEarth.error
## 1688 -0.4900043
## 1696 -0.4412942
## 1352 -0.4357896
## 457 -0.4227815
## 834 -0.4151480
## 101 -0.4134390
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 1512 11520 Y NA
## 142 10142 Y 0.1749847
## 1435 11442 Y 0.5406930
## 692 10693 Y NA
## 11 10011 Y NA
## 165 10165 Y 0.5323005
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 1512 <NA> NA
## 142 N TRUE
## 1435 Y FALSE
## 692 <NA> NA
## 11 <NA> NA
## 165 Y FALSE
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 1512 NA
## 142 0.8250153
## 1435 0.4593070
## 692 NA
## 11 NA
## 165 0.4676995
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 1512 NA
## 142 FALSE
## 1435 TRUE
## 692 NA
## 11 NA
## 165 TRUE
## sold.fctr.predict.Final.bagEarth.prob
## 1512 0.1356631
## 142 0.1664226
## 1435 0.2099079
## 692 0.2764408
## 11 0.4732926
## 165 0.4759427
## sold.fctr.predict.Final.bagEarth sold.fctr.predict.Final.bagEarth.err
## 1512 N TRUE
## 142 N TRUE
## 1435 N TRUE
## 692 N TRUE
## 11 N TRUE
## 165 N TRUE
## sold.fctr.predict.Final.bagEarth.err.abs
## 1512 0.8643369
## 142 0.8335774
## 1435 0.7900921
## 692 0.7235592
## 11 0.5267074
## 165 0.5240573
## sold.fctr.predict.Final.bagEarth.accurate
## 1512 FALSE
## 142 FALSE
## 1435 FALSE
## 692 FALSE
## 11 FALSE
## 165 FALSE
## sold.fctr.predict.Final.bagEarth.error
## 1512 -0.36433694
## 142 -0.33357744
## 1435 -0.29009209
## 692 -0.22355923
## 11 -0.02670745
## 165 -0.02405727
## UniqueID sold.fctr sold.fctr.predict.CSM.X.bagEarth.prob
## 1682 11691 N 0.8354304
## 103 10103 N NA
## 1703 11712 N NA
## 1665 11674 N NA
## 487 10488 N 0.9783019
## 1464 11471 N NA
## sold.fctr.predict.CSM.X.bagEarth sold.fctr.predict.CSM.X.bagEarth.err
## 1682 Y TRUE
## 103 <NA> NA
## 1703 <NA> NA
## 1665 <NA> NA
## 487 Y TRUE
## 1464 <NA> NA
## sold.fctr.predict.CSM.X.bagEarth.err.abs
## 1682 0.8354304
## 103 NA
## 1703 NA
## 1665 NA
## 487 0.9783019
## 1464 NA
## sold.fctr.predict.CSM.X.bagEarth.accurate
## 1682 FALSE
## 103 NA
## 1703 NA
## 1665 NA
## 487 FALSE
## 1464 NA
## sold.fctr.predict.Final.bagEarth.prob
## 1682 0.9418086
## 103 0.9464569
## 1703 0.9479348
## 1665 0.9495835
## 487 0.9603453
## 1464 0.9646261
## sold.fctr.predict.Final.bagEarth sold.fctr.predict.Final.bagEarth.err
## 1682 Y TRUE
## 103 Y TRUE
## 1703 Y TRUE
## 1665 Y TRUE
## 487 Y TRUE
## 1464 Y TRUE
## sold.fctr.predict.Final.bagEarth.err.abs
## 1682 0.9418086
## 103 0.9464569
## 1703 0.9479348
## 1665 0.9495835
## 487 0.9603453
## 1464 0.9646261
## sold.fctr.predict.Final.bagEarth.accurate
## 1682 FALSE
## 103 FALSE
## 1703 FALSE
## 1665 FALSE
## 487 FALSE
## 1464 FALSE
## sold.fctr.predict.Final.bagEarth.error
## 1682 0.4418086
## 103 0.4464569
## 1703 0.4479348
## 1665 0.4495835
## 487 0.4603453
## 1464 0.4646261
dsp_feats_vctr <- c(NULL)
for(var in grep(".importance", names(glb_feats_df), fixed=TRUE, value=TRUE))
dsp_feats_vctr <- union(dsp_feats_vctr,
glb_feats_df[!is.na(glb_feats_df[, var]), "id"])
# print(glb_trnobs_df[glb_trnobs_df$UniqueID %in% FN_OOB_ids,
# grep(glb_rsp_var, names(glb_trnobs_df), value=TRUE)])
print(setdiff(names(glb_trnobs_df), names(glb_allobs_df)))
## [1] "sold.fctr.predict.Final.bagEarth.prob"
## [2] "sold.fctr.predict.Final.bagEarth"
## [3] "sold.fctr.predict.Final.bagEarth.err"
## [4] "sold.fctr.predict.Final.bagEarth.err.abs"
## [5] "sold.fctr.predict.Final.bagEarth.accurate"
for (col in setdiff(names(glb_trnobs_df), names(glb_allobs_df)))
# Merge or cbind ?
glb_allobs_df[glb_allobs_df$.src == "Train", col] <- glb_trnobs_df[, col]
print(setdiff(names(glb_fitobs_df), names(glb_allobs_df)))
## character(0)
print(setdiff(names(glb_OOBobs_df), names(glb_allobs_df)))
## character(0)
for (col in setdiff(names(glb_OOBobs_df), names(glb_allobs_df)))
# Merge or cbind ?
glb_allobs_df[glb_allobs_df$.lcn == "OOB", col] <- glb_OOBobs_df[, col]
print(setdiff(names(glb_newobs_df), names(glb_allobs_df)))
## character(0)
if (glb_save_envir)
save(glb_feats_df, glb_allobs_df,
#glb_trnobs_df, glb_fitobs_df, glb_OOBobs_df, glb_newobs_df,
glb_models_df, dsp_models_df, glb_models_lst, glb_model_type,
glb_sel_mdl, glb_sel_mdl_id,
glb_fin_mdl, glb_fin_mdl_id,
file=paste0(glb_out_pfx, "dsk.RData"))
replay.petrisim(pn=glb_analytics_pn,
replay.trans=(glb_analytics_avl_objs <- c(glb_analytics_avl_objs,
"data.training.all.prediction","model.final")), flip_coord=TRUE)
## time trans "bgn " "fit.data.training.all " "predict.data.new " "end "
## 0.0000 multiple enabled transitions: data.training.all data.new model.selected firing: data.training.all
## 1.0000 1 2 1 0 0
## 1.0000 multiple enabled transitions: data.training.all data.new model.selected model.final data.training.all.prediction firing: data.new
## 2.0000 2 1 1 1 0
## 2.0000 multiple enabled transitions: data.training.all data.new model.selected model.final data.training.all.prediction data.new.prediction firing: model.selected
## 3.0000 3 0 2 1 0
## 3.0000 multiple enabled transitions: model.final data.training.all.prediction data.new.prediction firing: data.training.all.prediction
## 4.0000 5 0 1 1 1
## 4.0000 multiple enabled transitions: model.final data.training.all.prediction data.new.prediction firing: model.final
## 5.0000 4 0 0 2 1
glb_chunks_df <- myadd_chunk(glb_chunks_df, "predict.data.new", major.inc=TRUE)
## label step_major step_minor label_minor bgn end
## 15 fit.data.training 7 1 1 1092.833 1118.227
## 16 predict.data.new 8 0 0 1118.228 NA
## elapsed
## 15 25.394
## 16 NA
8.0: predict data new# Compute final model predictions
#glb_to_sav(); all.equal(sav_allobs_df, glb_allobs_df); all.equal(sav_trnobs_df, glb_trnobs_df); all.equal(sav_newobs_df, glb_newobs_df)
if (glb_is_classification && glb_is_binomial)
prob_threshold_def <-
glb_models_df[glb_models_df$id == glb_sel_mdl_id, "opt.prob.threshold.OOB"] else
prob_threshold_def <- NULL
for (obsSet in c("trn", "new")) {
obs_df <- switch(obsSet, all = glb_allobs_df, trn = glb_trnobs_df, new = glb_newobs_df)
obs_df <- glb_get_predictions(obs_df, mdl_id = glb_fin_mdl_id,
rsp_var_out = glb_rsp_var_out, prob_threshold_def = prob_threshold_def)
if (obsSet == "all") glb_allobs_df <- obs_df else
if (obsSet == "trn") glb_trnobs_df <- obs_df else
if (obsSet == "new") glb_newobs_df <- obs_df
}
## Warning in glb_get_predictions(obs_df, mdl_id = glb_fin_mdl_id, rsp_var_out
## = glb_rsp_var_out, : Using default probability threshold: 0.5
## Warning in glb_get_predictions(obs_df, mdl_id = glb_fin_mdl_id, rsp_var_out
## = glb_rsp_var_out, : Using default probability threshold: 0.5
rm(obs_df)
glb_allobs_df <- orderBy(reformulate(glb_id_var), myrbind_df(glb_trnobs_df, glb_newobs_df))
glb_analytics_diag_plots(obs_df = glb_newobs_df, mdl_id = glb_fin_mdl_id,
prob_threshold = prob_threshold_def)
## Warning in glb_analytics_diag_plots(obs_df = glb_newobs_df, mdl_id =
## glb_fin_mdl_id, : Limiting important feature scatter plots to 5 out of 32
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## Warning: Removed 798 rows containing missing values (geom_point).
## [1] "Min/Max Boundaries: "
## UniqueID sold.fctr sold.fctr.predict.Final.bagEarth.prob
## 1851 11862 <NA> 0.3277386
## 1854 11865 <NA> 0.9100827
## sold.fctr.predict.Final.bagEarth sold.fctr.predict.Final.bagEarth.err
## 1851 N NA
## 1854 Y NA
## sold.fctr.predict.Final.bagEarth.err.abs
## 1851 NA
## 1854 NA
## sold.fctr.predict.Final.bagEarth.accurate
## 1851 NA
## 1854 NA
## sold.fctr.predict.Final.bagEarth.error .label
## 1851 0 11862
## 1854 0 11865
## [1] "Inaccurate: "
## UniqueID sold.fctr sold.fctr.predict.Final.bagEarth.prob
## NA NA <NA> NA
## NA.1 NA <NA> NA
## NA.2 NA <NA> NA
## NA.3 NA <NA> NA
## NA.4 NA <NA> NA
## NA.5 NA <NA> NA
## sold.fctr.predict.Final.bagEarth sold.fctr.predict.Final.bagEarth.err
## NA <NA> NA
## NA.1 <NA> NA
## NA.2 <NA> NA
## NA.3 <NA> NA
## NA.4 <NA> NA
## NA.5 <NA> NA
## sold.fctr.predict.Final.bagEarth.err.abs
## NA NA
## NA.1 NA
## NA.2 NA
## NA.3 NA
## NA.4 NA
## NA.5 NA
## sold.fctr.predict.Final.bagEarth.accurate
## NA NA
## NA.1 NA
## NA.2 NA
## NA.3 NA
## NA.4 NA
## NA.5 NA
## sold.fctr.predict.Final.bagEarth.error
## NA NA
## NA.1 NA
## NA.2 NA
## NA.3 NA
## NA.4 NA
## NA.5 NA
## UniqueID sold.fctr sold.fctr.predict.Final.bagEarth.prob
## NA.105 NA <NA> NA
## NA.176 NA <NA> NA
## NA.440 NA <NA> NA
## NA.444 NA <NA> NA
## NA.560 NA <NA> NA
## NA.668 NA <NA> NA
## sold.fctr.predict.Final.bagEarth
## NA.105 <NA>
## NA.176 <NA>
## NA.440 <NA>
## NA.444 <NA>
## NA.560 <NA>
## NA.668 <NA>
## sold.fctr.predict.Final.bagEarth.err
## NA.105 NA
## NA.176 NA
## NA.440 NA
## NA.444 NA
## NA.560 NA
## NA.668 NA
## sold.fctr.predict.Final.bagEarth.err.abs
## NA.105 NA
## NA.176 NA
## NA.440 NA
## NA.444 NA
## NA.560 NA
## NA.668 NA
## sold.fctr.predict.Final.bagEarth.accurate
## NA.105 NA
## NA.176 NA
## NA.440 NA
## NA.444 NA
## NA.560 NA
## NA.668 NA
## sold.fctr.predict.Final.bagEarth.error
## NA.105 NA
## NA.176 NA
## NA.440 NA
## NA.444 NA
## NA.560 NA
## NA.668 NA
## UniqueID sold.fctr sold.fctr.predict.Final.bagEarth.prob
## NA.792 NA <NA> NA
## NA.793 NA <NA> NA
## NA.794 NA <NA> NA
## NA.795 NA <NA> NA
## NA.796 NA <NA> NA
## NA.797 NA <NA> NA
## sold.fctr.predict.Final.bagEarth
## NA.792 <NA>
## NA.793 <NA>
## NA.794 <NA>
## NA.795 <NA>
## NA.796 <NA>
## NA.797 <NA>
## sold.fctr.predict.Final.bagEarth.err
## NA.792 NA
## NA.793 NA
## NA.794 NA
## NA.795 NA
## NA.796 NA
## NA.797 NA
## sold.fctr.predict.Final.bagEarth.err.abs
## NA.792 NA
## NA.793 NA
## NA.794 NA
## NA.795 NA
## NA.796 NA
## NA.797 NA
## sold.fctr.predict.Final.bagEarth.accurate
## NA.792 NA
## NA.793 NA
## NA.794 NA
## NA.795 NA
## NA.796 NA
## NA.797 NA
## sold.fctr.predict.Final.bagEarth.error
## NA.792 NA
## NA.793 NA
## NA.794 NA
## NA.795 NA
## NA.796 NA
## NA.797 NA
## Warning: Removed 798 rows containing missing values (geom_point).
if (is.null(glb_out_obs)) obs_df <- glb_newobs_df else
obs_df <- switch(glb_out_obs,
all = glb_allobs_df, trn = glb_trnobs_df, new = glb_newobs_df)
require(stringr)
if (glb_is_classification && glb_is_binomial) {
# submit_df <- glb_newobs_df[, c(glb_id_var,
# paste0(glb_rsp_var_out, glb_fin_mdl_id, ".prob"))]
# names(submit_df)[2] <- "Probability1"
obsout_df <- obs_df[, glb_id_var, FALSE]
for (clmn in names(glb_out_vars_lst))
if (!grepl("^%<d-%", glb_out_vars_lst[[clmn]]))
obsout_df[, clmn] <- obs_df[, glb_out_vars_lst[[clmn]]] else {
feat <- str_trim(unlist(strsplit(glb_out_vars_lst[[clmn]], "%<d-%"))[2])
obsout_df[, clmn] <- obs_df[, eval(parse(text = feat))]
}
glb_force_prediction_lst <- list()
glb_force_prediction_lst[["0"]] <- c(11885, 11907, 11932, 11943,
12050, 12115, 12171,
12253, 12285, 12367, 12388, 12399,
12585)
for (obs_id in glb_force_prediction_lst[["0"]]) {
if (sum(glb_allobs_df[, glb_id_var] == obs_id) == 0)
next
if (is.na(glb_allobs_df[glb_allobs_df[, glb_id_var] == obs_id, ".grpid"]))
stop(".grpid is NA")
# submit_df[submit_df[, glb_id_var] == obs_id, "Probability1"] <-
# max(0, submit_df[submit_df[, glb_id_var] == obs_id, "Probability1"] - 0.5)
}
glb_force_prediction_lst[["1"]] <- c(11871, 11875, 11886,
11913, 11931, 11937, 11967, 11982, 11990, 11991, 11994, 11999,
12000, 12002, 12004, 12018, 12021, 12065, 12072,
12111, 12114, 12126, 12134, 12152, 12172,
12213, 12214, 12233, 12265, 12278, 12299,
12446, 12491,
12505, 12576, 12608, 12630)
for (obs_id in glb_force_prediction_lst[["1"]]) {
if (sum(glb_allobs_df[, glb_id_var] == obs_id) == 0)
next
if (is.na(glb_allobs_df[glb_allobs_df[, glb_id_var] == obs_id, ".grpid"]))
stop(".grpid is NA")
# submit_df[submit_df[, glb_id_var] == obs_id, "Probability1"] <-
# min(0.9999, submit_df[submit_df[, glb_id_var] == obs_id, "Probability1"] + 0.5)
}
rsp_var_out <- paste0(glb_rsp_var_out, glb_fin_mdl_id)
for (obs_id in glb_newobs_df[!is.na(glb_newobs_df[, rsp_var_out]) &
(glb_newobs_df[, rsp_var_out] == "Y") &
(glb_newobs_df[ , "startprice"] > 675), "UniqueID"]) {
# submit_df[submit_df[, glb_id_var] == obs_id, "Probability1"] <-
# max(0, submit_df[submit_df[, glb_id_var] == obs_id, "Probability1"] - 0.5)
}
} else {
# submit_df <- glb_newobs_df[, c(glb_id_var,
# paste0(glb_rsp_var_out, glb_fin_mdl_id))]
obsout_df <- obs_df[, glb_id_var, FALSE]
for (clmn in names(glb_out_vars_lst))
if (!grepl("^%<d-%", glb_out_vars_lst[[clmn]]))
obsout_df[, clmn] <- obs_df[, glb_out_vars_lst[[clmn]]] else {
feat <- str_trim(unlist(strsplit(glb_out_vars_lst[[clmn]], "%<d-%"))[2])
obsout_df[, clmn] <- obs_df[, eval(parse(text=feat))]
}
}
if (glb_is_classification) {
rsp_var_out <- paste0(glb_rsp_var_out, glb_fin_mdl_id)
tmp_newobs_df <- subset(glb_newobs_df[, c(glb_id_var, ".grpid", rsp_var_out)],
!is.na(.grpid))
tmp_newobs_df <- merge(tmp_newobs_df, dupgrps_df, by = ".grpid", all.x = TRUE)
tmp_newobs_df <- merge(tmp_newobs_df, obsout_df, by = glb_id_var, all.x = TRUE)
tmp_newobs_df$.err <-
((tmp_newobs_df$Probability1 > 0.5) & (tmp_newobs_df$sold.0 > 0) |
(tmp_newobs_df$Probability1 < 0.5) & (tmp_newobs_df$sold.1 > 0))
tmp_newobs_df <- orderBy(~UniqueID, subset(tmp_newobs_df, .err == TRUE))
print(sprintf("Prediction errors in duplicates: %d", nrow(tmp_newobs_df)))
print(tmp_newobs_df)
# if (nrow(tmp_newobs_df) > 0)
# stop("check Prediction errors in duplicates")
#print(dupobs_df[dupobs_df$.grpid == 26, ])
tmp_newobs_df <- cbind(glb_newobs_df, obsout_df[, "Probability1", FALSE])
# if (max(glb_newobs_df[!is.na(glb_newobs_df[, rsp_var_out]) &
# (tmp_newobs_df[, "Probability1"] >= 0.5), "startprice"]) >
# max(glb_allobs_df[!is.na(glb_allobs_df[, glb_rsp_var]) &
# (glb_allobs_df[, glb_rsp_var] == "Y"), "startprice"]))
# stop("startprice for some +ve predictions > 675")
# Check predictions that are outside of data ranges
#stop(here")
require(stringr)
tmp_feats_df <- subset(glb_feats_df,
!nzv &
(exclude.as.feat != 1) &
!grepl(".fctr", id, fixed=TRUE))[, "id", FALSE]
ranges_all_df <- glb_allobs_df[, tmp_feats_df$id] %>%
dplyr::summarise_each(funs(min(., na.rm=TRUE),
max(., na.rm=TRUE))) %>%
tidyr::gather() %>%
dplyr::mutate(id=str_sub(key, 1, -5),
stat=str_sub(key, -3)) %>%
dplyr::select(-key) %>%
tidyr::spread(stat, value)
# sav_ranges_trn_df <- ranges_trn_df; all.equal(sav_ranges_trn_df, ranges_trn_df)
# sav_ranges_new_df <- ranges_new_df; all.equal(sav_ranges_new_df, ranges_new_df)
get_ranges_df <- function(obs_df, feats, class_var) {
require(tidyr)
ranges_df <- obs_df[, c(class_var, feats)] %>%
dplyr::group_by_(class_var) %>%
dplyr::summarise_each(funs(min(., na.rm=TRUE),
max(., na.rm=TRUE))) %>%
tidyr::gather(key, value, -1) %>%
mutate(id=str_sub(key, 1, -5),
stat.vname=paste0(str_sub(key, -3), ".", class_var)) %>%
unite_("stat.class", c("stat.vname", class_var), sep=".") %>%
dplyr::select(-key) %>%
spread(stat.class, value)
return(ranges_df)
}
rsp_var_out_OOB <- paste0(glb_rsp_var_out, glb_sel_mdl_id)
rsp_var_out_new <- paste0(glb_rsp_var_out, glb_fin_mdl_id)
ranges_trn_df <- get_ranges_df(obs_df=glb_trnobs_df, feats=tmp_feats_df$id,
class_var=glb_rsp_var)
ranges_fit_df <- get_ranges_df(obs_df=glb_fitobs_df, feats=tmp_feats_df$id,
class_var=glb_rsp_var)
ranges_OOB_df <- get_ranges_df(obs_df=glb_OOBobs_df, feats=tmp_feats_df$id,
class_var=rsp_var_out_OOB)
ranges_new_df <- get_ranges_df(obs_df=glb_newobs_df, feats=tmp_feats_df$id,
class_var=rsp_var_out_new)
for (obsset in c("OOB", "new")) {
if (obsset == "OOB") {
ranges_ref_df <- ranges_fit_df; obs_df <- glb_OOBobs_df;
rsp_var_out_obs <- rsp_var_out_OOB; sprintf_pfx <- "OOBobs";
} else {
ranges_ref_df <- ranges_trn_df; obs_df <- glb_newobs_df;
rsp_var_out_obs <- rsp_var_out_new; sprintf_pfx <- "newobs";
}
plt_feats_df <- glb_feats_df %>%
merge(ranges_all_df, all=TRUE) %>%
merge(ranges_ref_df, all=TRUE) %>%
merge(ranges_OOB_df, all=TRUE) %>%
merge(ranges_new_df, all=TRUE) %>%
subset(!is.na(min) & (id != ".rnorm"))
row.names(plt_feats_df) <- plt_feats_df$id
range_outlier_ids <- c(NULL)
for (clss in unique(obs_df[, rsp_var_out_obs])) {
for (stat in c("min", "max")) {
if (stat == "min") {
dsp_feats <- plt_feats_df[
which(plt_feats_df[, paste("min", rsp_var_out_obs, clss, sep=".")] <
plt_feats_df[, paste("min", glb_rsp_var, clss, sep=".")]), "id"]
} else {
dsp_feats <- plt_feats_df[
which(plt_feats_df[, paste("max", rsp_var_out_obs, clss, sep=".")] >
plt_feats_df[, paste("max", glb_rsp_var, clss, sep=".")]), "id"]
}
if (length(dsp_feats) > 0) {
ths_ids <- c(NULL)
for (feat in dsp_feats) {
if (stat == "min") {
ths_ids <- union(ths_ids,
obs_df[(obs_df[, rsp_var_out_obs] == clss) &
(obs_df[, feat] <
plt_feats_df[plt_feats_df$id == feat, paste("min", glb_rsp_var, clss, sep=".")]),
glb_id_var])
} else {
ths_ids <- union(ths_ids,
obs_df[(obs_df[, rsp_var_out_obs] == clss) &
(obs_df[, feat] >
plt_feats_df[plt_feats_df$id == feat, paste("max", glb_rsp_var, clss, sep=".")]),
glb_id_var])
}
}
tmp_obs_df <- obs_df[obs_df[, glb_id_var] %in% ths_ids,
c(glb_id_var, rsp_var_out_obs, dsp_feats)]
if (stat == "min") {
print(sprintf("%s %s %s: min < min of Train range: %d",
sprintf_pfx, rsp_var_out_obs, clss, nrow(tmp_obs_df)))
} else {
print(sprintf("%s %s %s: max > max of Train range: %d",
sprintf_pfx, rsp_var_out_obs, clss, nrow(tmp_obs_df)))
}
myprint_df(tmp_obs_df)
print(subset(plt_feats_df, id %in% dsp_feats))
range_outlier_ids <- union(range_outlier_ids, ths_ids)
}
}
}
print(sprintf("%s total range outliers: %d", sprintf_pfx, length(range_outlier_ids)))
}
}
## [1] "Prediction errors in duplicates: 15"
## UniqueID .grpid sold.fctr.predict.Final.bagEarth sold.0 sold.1 sold.NA
## 4 11886 134 N 0 1 1
## 9 11931 53 N 0 2 2
## 19 11982 33 N 0 1 1
## 24 11999 115 N 0 1 1
## 42 12111 128 N 0 1 1
## 44 12115 56 Y 1 0 1
## 59 12233 30 N 0 1 1
## 68 12285 55 Y 1 0 2
## 69 12299 53 N 0 2 2
## 72 12367 55 Y 1 0 2
## 76 12446 103 N 0 1 1
## 80 12505 54 N 0 1 1
## 81 12576 93 N 0 1 1
## 82 12585 112 Y 1 0 1
## 87 12630 76 N 0 2 1
## .freq Probability1 .err
## 4 2 0.3826545 TRUE
## 9 4 0.4371327 TRUE
## 19 2 0.4759427 TRUE
## 24 2 0.3807053 TRUE
## 42 2 0.2429296 TRUE
## 44 2 0.5556481 TRUE
## 59 2 0.4014087 TRUE
## 68 3 0.5638194 TRUE
## 69 4 0.4371327 TRUE
## 72 3 0.5638194 TRUE
## 76 2 0.2001818 TRUE
## 80 2 0.3978078 TRUE
## 81 2 0.2318090 TRUE
## 82 2 0.5355969 TRUE
## 87 3 0.1848388 TRUE
## [1] "OOBobs sold.fctr.predict.CSM.X.bagEarth N: max > max of Train range: 5"
## UniqueID sold.fctr.predict.CSM.X.bagEarth D.chrs.uppr.n.log
## 1382 11389 N 2.484907
## 1294 11301 N 4.465908
## 1117 11123 N 4.343805
## 1633 11642 N 2.708050
## 1767 11776 N 3.850148
## D.ratio.weight.sum.wrds.n D.weight.post.stem.sum
## 1382 6.2832246 6.283225
## 1294 0.3479012 4.522716
## 1117 0.4265605 6.824967
## 1633 2.3057474 6.917242
## 1767 0.4838468 7.257702
## D.weight.post.stop.sum D.weight.sum
## 1382 6.283225 6.283225
## 1294 5.268255 4.522716
## 1117 7.020585 6.824967
## 1633 6.917242 6.917242
## 1767 7.278648 7.257702
## id cor.y
## D.chrs.uppr.n.log D.chrs.uppr.n.log -0.054491610
## D.ratio.weight.sum.wrds.n D.ratio.weight.sum.wrds.n -0.001080251
## D.weight.post.stem.sum D.weight.post.stem.sum -0.047105442
## D.weight.post.stop.sum D.weight.post.stop.sum -0.045009208
## D.weight.sum D.weight.sum -0.047105442
## exclude.as.feat cor.y.abs
## D.chrs.uppr.n.log FALSE 0.054491610
## D.ratio.weight.sum.wrds.n FALSE 0.001080251
## D.weight.post.stem.sum FALSE 0.047105442
## D.weight.post.stop.sum FALSE 0.045009208
## D.weight.sum FALSE 0.047105442
## cor.high.X freqRatio percentUnique
## D.chrs.uppr.n.log D.chrs.n.log 15.66176 4.486486
## D.ratio.weight.sum.wrds.n <NA> 62.70588 34.810811
## D.weight.post.stem.sum D.terms.post.stop.n.log 62.70588 34.648649
## D.weight.post.stop.sum D.weight.post.stem.sum 62.70588 34.756757
## D.weight.sum D.weight.post.stem.sum 62.70588 34.648649
## zeroVar nzv is.cor.y.abs.low interaction.feat
## D.chrs.uppr.n.log FALSE FALSE FALSE <NA>
## D.ratio.weight.sum.wrds.n FALSE FALSE TRUE <NA>
## D.weight.post.stem.sum FALSE FALSE FALSE <NA>
## D.weight.post.stop.sum FALSE FALSE FALSE <NA>
## D.weight.sum FALSE FALSE FALSE <NA>
## shapiro.test.p.value rsp_var_raw id_var rsp_var
## D.chrs.uppr.n.log 4.550442e-50 FALSE NA NA
## D.ratio.weight.sum.wrds.n 1.286452e-59 FALSE NA NA
## D.weight.post.stem.sum 2.197748e-48 FALSE NA NA
## D.weight.post.stop.sum 2.648991e-48 FALSE NA NA
## D.weight.sum 2.197748e-48 FALSE NA NA
## max min max.sold.fctr.N max.sold.fctr.Y
## D.chrs.uppr.n.log 4.465908 0 4.454347 4.454347
## D.ratio.weight.sum.wrds.n 7.048759 0 5.241404 7.048759
## D.weight.post.stem.sum 8.048759 0 6.702992 7.048759
## D.weight.post.stop.sum 8.563332 0 7.202321 7.048759
## D.weight.sum 8.048759 0 6.702992 7.048759
## min.sold.fctr.N min.sold.fctr.Y
## D.chrs.uppr.n.log 0 0
## D.ratio.weight.sum.wrds.n 0 0
## D.weight.post.stem.sum 0 0
## D.weight.post.stop.sum 0 0
## D.weight.sum 0 0
## max.sold.fctr.predict.CSM.X.bagEarth.N
## D.chrs.uppr.n.log 4.465908
## D.ratio.weight.sum.wrds.n 6.283225
## D.weight.post.stem.sum 7.257702
## D.weight.post.stop.sum 7.278648
## D.weight.sum 7.257702
## max.sold.fctr.predict.CSM.X.bagEarth.Y
## D.chrs.uppr.n.log 4.430817
## D.ratio.weight.sum.wrds.n 4.741331
## D.weight.post.stem.sum 8.048759
## D.weight.post.stop.sum 8.563332
## D.weight.sum 8.048759
## min.sold.fctr.predict.CSM.X.bagEarth.N
## D.chrs.uppr.n.log 0
## D.ratio.weight.sum.wrds.n 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## min.sold.fctr.predict.CSM.X.bagEarth.Y
## D.chrs.uppr.n.log 0
## D.ratio.weight.sum.wrds.n 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## max.sold.fctr.predict.Final.bagEarth.N
## D.chrs.uppr.n.log 4.465908
## D.ratio.weight.sum.wrds.n 5.241404
## D.weight.post.stem.sum 6.605876
## D.weight.post.stop.sum 6.851448
## D.weight.sum 6.605876
## max.sold.fctr.predict.Final.bagEarth.Y
## D.chrs.uppr.n.log 4.430817
## D.ratio.weight.sum.wrds.n 5.241404
## D.weight.post.stem.sum 5.994103
## D.weight.post.stop.sum 6.379585
## D.weight.sum 5.994103
## min.sold.fctr.predict.Final.bagEarth.N
## D.chrs.uppr.n.log 0
## D.ratio.weight.sum.wrds.n 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## min.sold.fctr.predict.Final.bagEarth.Y
## D.chrs.uppr.n.log 0
## D.ratio.weight.sum.wrds.n 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## [1] "OOBobs sold.fctr.predict.CSM.X.bagEarth Y: min < min of Train range: 3"
## UniqueID sold.fctr.predict.CSM.X.bagEarth D.ratio.wrds.stop.n.wrds.n
## 915 10918 Y 0.04347826
## 1594 11603 Y 0.40000000
## 227 10227 Y 0.30000000
## D.weight.sum.stem.stop.Ratio
## 915 0.9756676
## 1594 0.7143207
## 227 0.7741412
## id cor.y
## D.ratio.wrds.stop.n.wrds.n D.ratio.wrds.stop.n.wrds.n 0.059547328
## D.weight.sum.stem.stop.Ratio D.weight.sum.stem.stop.Ratio 0.002381527
## exclude.as.feat cor.y.abs
## D.ratio.wrds.stop.n.wrds.n FALSE 0.059547328
## D.weight.sum.stem.stop.Ratio FALSE 0.002381527
## cor.high.X freqRatio
## D.ratio.wrds.stop.n.wrds.n D.terms.post.stop.n.log 18.06780
## D.weight.sum.stem.stop.Ratio <NA> 64.47059
## percentUnique zeroVar nzv is.cor.y.abs.low
## D.ratio.wrds.stop.n.wrds.n 4.27027 FALSE FALSE FALSE
## D.weight.sum.stem.stop.Ratio 33.56757 FALSE FALSE FALSE
## interaction.feat shapiro.test.p.value
## D.ratio.wrds.stop.n.wrds.n <NA> 5.138767e-49
## D.weight.sum.stem.stop.Ratio <NA> 7.686585e-54
## rsp_var_raw id_var rsp_var max min
## D.ratio.wrds.stop.n.wrds.n FALSE NA NA 1 0.04347826
## D.weight.sum.stem.stop.Ratio FALSE NA NA 1 0.71432071
## max.sold.fctr.N max.sold.fctr.Y
## D.ratio.wrds.stop.n.wrds.n 1 1
## D.weight.sum.stem.stop.Ratio 1 1
## min.sold.fctr.N min.sold.fctr.Y
## D.ratio.wrds.stop.n.wrds.n 0.04347826 0.04545455
## D.weight.sum.stem.stop.Ratio 0.76580062 0.81266745
## max.sold.fctr.predict.CSM.X.bagEarth.N
## D.ratio.wrds.stop.n.wrds.n 1
## D.weight.sum.stem.stop.Ratio 1
## max.sold.fctr.predict.CSM.X.bagEarth.Y
## D.ratio.wrds.stop.n.wrds.n 1
## D.weight.sum.stem.stop.Ratio 1
## min.sold.fctr.predict.CSM.X.bagEarth.N
## D.ratio.wrds.stop.n.wrds.n 0.04761905
## D.weight.sum.stem.stop.Ratio 0.80128574
## min.sold.fctr.predict.CSM.X.bagEarth.Y
## D.ratio.wrds.stop.n.wrds.n 0.04347826
## D.weight.sum.stem.stop.Ratio 0.71432071
## max.sold.fctr.predict.Final.bagEarth.N
## D.ratio.wrds.stop.n.wrds.n 1
## D.weight.sum.stem.stop.Ratio 1
## max.sold.fctr.predict.Final.bagEarth.Y
## D.ratio.wrds.stop.n.wrds.n 1
## D.weight.sum.stem.stop.Ratio 1
## min.sold.fctr.predict.Final.bagEarth.N
## D.ratio.wrds.stop.n.wrds.n 0.0500000
## D.weight.sum.stem.stop.Ratio 0.8220163
## min.sold.fctr.predict.Final.bagEarth.Y
## D.ratio.wrds.stop.n.wrds.n 0.05263158
## D.weight.sum.stem.stop.Ratio 0.72846321
## [1] "OOBobs sold.fctr.predict.CSM.X.bagEarth Y: max > max of Train range: 6"
## UniqueID sold.fctr.predict.CSM.X.bagEarth D.terms.post.stem.n.log
## 873 10876 Y 1.3862944
## 1612 11621 Y 2.3025851
## 915 10918 Y 3.0445224
## 1594 11603 Y 1.3862944
## 119 10119 Y 1.6094379
## 812 10814 Y 0.6931472
## D.terms.post.stop.n.log D.weight.post.stem.sum D.weight.post.stop.sum
## 873 1.3862944 7.258891 7.484915
## 1612 2.3025851 4.333960 4.498634
## 915 3.0445224 4.623058 4.738354
## 1594 1.3862944 5.066153 7.092267
## 119 1.6094379 7.332280 7.332280
## 812 0.6931472 8.048759 8.563332
## D.weight.sum D.wrds.stop.n.log D.wrds.unq.n.log
## 873 7.258891 0.6931472 1.3862944
## 1612 4.333960 2.3025851 2.3025851
## 915 4.623058 0.0000000 3.0445224
## 1594 5.066153 0.6931472 1.3862944
## 119 7.332280 0.6931472 1.6094379
## 812 8.048759 1.0986123 0.6931472
## id cor.y
## D.terms.post.stem.n.log D.terms.post.stem.n.log -0.062220631
## D.terms.post.stop.n.log D.terms.post.stop.n.log -0.062526435
## D.weight.post.stem.sum D.weight.post.stem.sum -0.047105442
## D.weight.post.stop.sum D.weight.post.stop.sum -0.045009208
## D.weight.sum D.weight.sum -0.047105442
## D.wrds.stop.n.log D.wrds.stop.n.log 0.003851183
## D.wrds.unq.n.log D.wrds.unq.n.log -0.062220631
## exclude.as.feat cor.y.abs
## D.terms.post.stem.n.log FALSE 0.062220631
## D.terms.post.stop.n.log FALSE 0.062526435
## D.weight.post.stem.sum FALSE 0.047105442
## D.weight.post.stop.sum FALSE 0.045009208
## D.weight.sum FALSE 0.047105442
## D.wrds.stop.n.log FALSE 0.003851183
## D.wrds.unq.n.log FALSE 0.062220631
## cor.high.X freqRatio percentUnique
## D.terms.post.stem.n.log D.terms.post.stop.n.log 11.714286 1.1351351
## D.terms.post.stop.n.log <NA> 13.325000 1.1351351
## D.weight.post.stem.sum D.terms.post.stop.n.log 62.705882 34.6486486
## D.weight.post.stop.sum D.weight.post.stem.sum 62.705882 34.7567568
## D.weight.sum D.weight.post.stem.sum 62.705882 34.6486486
## D.wrds.stop.n.log <NA> 8.732484 0.5405405
## D.wrds.unq.n.log D.terms.post.stem.n.log 11.714286 1.1351351
## zeroVar nzv is.cor.y.abs.low interaction.feat
## D.terms.post.stem.n.log FALSE FALSE FALSE <NA>
## D.terms.post.stop.n.log FALSE FALSE FALSE <NA>
## D.weight.post.stem.sum FALSE FALSE FALSE <NA>
## D.weight.post.stop.sum FALSE FALSE FALSE <NA>
## D.weight.sum FALSE FALSE FALSE <NA>
## D.wrds.stop.n.log FALSE FALSE FALSE <NA>
## D.wrds.unq.n.log FALSE FALSE FALSE <NA>
## shapiro.test.p.value rsp_var_raw id_var rsp_var
## D.terms.post.stem.n.log 1.386439e-48 FALSE NA NA
## D.terms.post.stop.n.log 1.391188e-48 FALSE NA NA
## D.weight.post.stem.sum 2.197748e-48 FALSE NA NA
## D.weight.post.stop.sum 2.648991e-48 FALSE NA NA
## D.weight.sum 2.197748e-48 FALSE NA NA
## D.wrds.stop.n.log 4.444633e-54 FALSE NA NA
## D.wrds.unq.n.log 1.386439e-48 FALSE NA NA
## max min max.sold.fctr.N max.sold.fctr.Y
## D.terms.post.stem.n.log 3.044522 0 2.944439 2.995732
## D.terms.post.stop.n.log 3.044522 0 2.995732 2.995732
## D.weight.post.stem.sum 8.048759 0 6.702992 7.048759
## D.weight.post.stop.sum 8.563332 0 7.202321 7.048759
## D.weight.sum 8.048759 0 6.702992 7.048759
## D.wrds.stop.n.log 2.564949 0 2.302585 2.197225
## D.wrds.unq.n.log 3.044522 0 2.944439 2.995732
## min.sold.fctr.N min.sold.fctr.Y
## D.terms.post.stem.n.log 0 0
## D.terms.post.stop.n.log 0 0
## D.weight.post.stem.sum 0 0
## D.weight.post.stop.sum 0 0
## D.weight.sum 0 0
## D.wrds.stop.n.log 0 0
## D.wrds.unq.n.log 0 0
## max.sold.fctr.predict.CSM.X.bagEarth.N
## D.terms.post.stem.n.log 2.944439
## D.terms.post.stop.n.log 2.995732
## D.weight.post.stem.sum 7.257702
## D.weight.post.stop.sum 7.278648
## D.weight.sum 7.257702
## D.wrds.stop.n.log 2.302585
## D.wrds.unq.n.log 2.944439
## max.sold.fctr.predict.CSM.X.bagEarth.Y
## D.terms.post.stem.n.log 3.044522
## D.terms.post.stop.n.log 3.044522
## D.weight.post.stem.sum 8.048759
## D.weight.post.stop.sum 8.563332
## D.weight.sum 8.048759
## D.wrds.stop.n.log 2.302585
## D.wrds.unq.n.log 3.044522
## min.sold.fctr.predict.CSM.X.bagEarth.N
## D.terms.post.stem.n.log 0
## D.terms.post.stop.n.log 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## D.wrds.stop.n.log 0
## D.wrds.unq.n.log 0
## min.sold.fctr.predict.CSM.X.bagEarth.Y
## D.terms.post.stem.n.log 0
## D.terms.post.stop.n.log 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## D.wrds.stop.n.log 0
## D.wrds.unq.n.log 0
## max.sold.fctr.predict.Final.bagEarth.N
## D.terms.post.stem.n.log 2.944439
## D.terms.post.stop.n.log 2.944439
## D.weight.post.stem.sum 6.605876
## D.weight.post.stop.sum 6.851448
## D.weight.sum 6.605876
## D.wrds.stop.n.log 2.397895
## D.wrds.unq.n.log 2.944439
## max.sold.fctr.predict.Final.bagEarth.Y
## D.terms.post.stem.n.log 2.944439
## D.terms.post.stop.n.log 2.944439
## D.weight.post.stem.sum 5.994103
## D.weight.post.stop.sum 6.379585
## D.weight.sum 5.994103
## D.wrds.stop.n.log 2.564949
## D.wrds.unq.n.log 2.944439
## min.sold.fctr.predict.Final.bagEarth.N
## D.terms.post.stem.n.log 0
## D.terms.post.stop.n.log 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## D.wrds.stop.n.log 0
## D.wrds.unq.n.log 0
## min.sold.fctr.predict.Final.bagEarth.Y
## D.terms.post.stem.n.log 0
## D.terms.post.stop.n.log 0
## D.weight.post.stem.sum 0
## D.weight.post.stop.sum 0
## D.weight.sum 0
## D.wrds.stop.n.log 0
## D.wrds.unq.n.log 0
## [1] "OOBobs total range outliers: 12"
## [1] "newobs sold.fctr.predict.Final.bagEarth N: min < min of Train range: 2"
## UniqueID sold.fctr.predict.Final.bagEarth sprice.d20nexp sprice.log10
## 2586 12597 N 9.995001e-01 -4.605170
## 2614 12625 N 1.929714e-22 6.907745
## sprice.root2
## 2586 0.10000
## 2614 31.62262
## id cor.y exclude.as.feat cor.y.abs
## sprice.d20nexp sprice.d20nexp 0.3979951 FALSE 0.3979951
## sprice.log10 sprice.log10 -0.4693989 FALSE 0.4693989
## sprice.root2 sprice.root2 -0.5112754 FALSE 0.5112754
## cor.high.X freqRatio percentUnique zeroVar nzv
## sprice.d20nexp sprice.log10 2.807692 30.21622 FALSE FALSE
## sprice.log10 sprice.root2 2.807692 30.21622 FALSE FALSE
## sprice.root2 <NA> 2.807692 30.21622 FALSE FALSE
## is.cor.y.abs.low interaction.feat shapiro.test.p.value
## sprice.d20nexp FALSE <NA> 1.494597e-59
## sprice.log10 FALSE <NA> 1.697609e-47
## sprice.root2 FALSE <NA> 6.339275e-16
## rsp_var_raw id_var rsp_var max min
## sprice.d20nexp FALSE NA NA 0.9995001 1.929714e-22
## sprice.log10 FALSE NA NA 6.9077453 -4.605170e+00
## sprice.root2 FALSE NA NA 31.6226185 1.000000e-01
## max.sold.fctr.N max.sold.fctr.Y min.sold.fctr.N
## sprice.d20nexp 0.9517052 0.9995001 2.027639e-22
## sprice.log10 6.9067548 6.5147127 -1.005034e-02
## sprice.root2 31.6069613 25.9807621 9.949874e-01
## min.sold.fctr.Y max.sold.fctr.predict.CSM.X.bagEarth.N
## sprice.d20nexp 2.200702e-15 0.8611384
## sprice.log10 -4.605170e+00 6.7214137
## sprice.root2 1.000000e-01 28.8095470
## max.sold.fctr.predict.CSM.X.bagEarth.Y
## sprice.d20nexp 0.9995001
## sprice.log10 6.3969297
## sprice.root2 24.4948974
## min.sold.fctr.predict.CSM.X.bagEarth.N
## sprice.d20nexp 9.484101e-19
## sprice.log10 1.095273e+00
## sprice.root2 1.729162e+00
## min.sold.fctr.predict.CSM.X.bagEarth.Y
## sprice.d20nexp 9.357623e-14
## sprice.log10 -4.605170e+00
## sprice.root2 1.000000e-01
## max.sold.fctr.predict.Final.bagEarth.N
## sprice.d20nexp 0.9995001
## sprice.log10 6.9077453
## sprice.root2 31.6226185
## max.sold.fctr.predict.Final.bagEarth.Y
## sprice.d20nexp 0.9995001
## sprice.log10 6.4377516
## sprice.root2 25.0000000
## min.sold.fctr.predict.Final.bagEarth.N
## sprice.d20nexp 1.929714e-22
## sprice.log10 -4.605170e+00
## sprice.root2 1.000000e-01
## min.sold.fctr.predict.Final.bagEarth.Y
## sprice.d20nexp 2.681004e-14
## sprice.log10 -4.605170e+00
## sprice.root2 1.000000e-01
## [1] "newobs sold.fctr.predict.Final.bagEarth N: max > max of Train range: 3"
## UniqueID sold.fctr.predict.Final.bagEarth D.chrs.pnct13.n.log
## 2048 12059 N 2.708050
## 2586 12597 N 1.386294
## 2614 12625 N 1.098612
## D.wrds.stop.n.log sprice.d20nexp sprice.log10 sprice.root2
## 2048 0.000000 9.118820e-04 4.941642 11.83216
## 2586 1.945910 9.995001e-01 -4.605170 0.10000
## 2614 2.397895 1.929714e-22 6.907745 31.62262
## id cor.y exclude.as.feat
## D.chrs.pnct13.n.log D.chrs.pnct13.n.log -0.032095777 FALSE
## D.wrds.stop.n.log D.wrds.stop.n.log 0.003851183 FALSE
## sprice.d20nexp sprice.d20nexp 0.397995133 FALSE
## sprice.log10 sprice.log10 -0.469398937 FALSE
## sprice.root2 sprice.root2 -0.511275385 FALSE
## cor.y.abs cor.high.X freqRatio
## D.chrs.pnct13.n.log 0.032095777 D.terms.post.stop.n.log 5.272374
## D.wrds.stop.n.log 0.003851183 <NA> 8.732484
## sprice.d20nexp 0.397995133 sprice.log10 2.807692
## sprice.log10 0.469398937 sprice.root2 2.807692
## sprice.root2 0.511275385 <NA> 2.807692
## percentUnique zeroVar nzv is.cor.y.abs.low
## D.chrs.pnct13.n.log 0.4864865 FALSE FALSE FALSE
## D.wrds.stop.n.log 0.5405405 FALSE FALSE FALSE
## sprice.d20nexp 30.2162162 FALSE FALSE FALSE
## sprice.log10 30.2162162 FALSE FALSE FALSE
## sprice.root2 30.2162162 FALSE FALSE FALSE
## interaction.feat shapiro.test.p.value rsp_var_raw
## D.chrs.pnct13.n.log <NA> 1.157759e-53 FALSE
## D.wrds.stop.n.log <NA> 4.444633e-54 FALSE
## sprice.d20nexp <NA> 1.494597e-59 FALSE
## sprice.log10 <NA> 1.697609e-47 FALSE
## sprice.root2 <NA> 6.339275e-16 FALSE
## id_var rsp_var max min
## D.chrs.pnct13.n.log NA NA 2.7080502 0.000000e+00
## D.wrds.stop.n.log NA NA 2.5649494 0.000000e+00
## sprice.d20nexp NA NA 0.9995001 1.929714e-22
## sprice.log10 NA NA 6.9077453 -4.605170e+00
## sprice.root2 NA NA 31.6226185 1.000000e-01
## max.sold.fctr.N max.sold.fctr.Y min.sold.fctr.N
## D.chrs.pnct13.n.log 1.9459101 2.1972246 0.000000e+00
## D.wrds.stop.n.log 2.3025851 2.3025851 0.000000e+00
## sprice.d20nexp 0.9517052 0.9995001 2.027639e-22
## sprice.log10 6.9067548 6.5147127 -1.005034e-02
## sprice.root2 31.6069613 25.9807621 9.949874e-01
## min.sold.fctr.Y max.sold.fctr.predict.CSM.X.bagEarth.N
## D.chrs.pnct13.n.log 0.000000e+00 1.6094379
## D.wrds.stop.n.log 0.000000e+00 2.3025851
## sprice.d20nexp 2.200702e-15 0.8611384
## sprice.log10 -4.605170e+00 6.7214137
## sprice.root2 1.000000e-01 28.8095470
## max.sold.fctr.predict.CSM.X.bagEarth.Y
## D.chrs.pnct13.n.log 1.7917595
## D.wrds.stop.n.log 2.3025851
## sprice.d20nexp 0.9995001
## sprice.log10 6.3969297
## sprice.root2 24.4948974
## min.sold.fctr.predict.CSM.X.bagEarth.N
## D.chrs.pnct13.n.log 0.000000e+00
## D.wrds.stop.n.log 0.000000e+00
## sprice.d20nexp 9.484101e-19
## sprice.log10 1.095273e+00
## sprice.root2 1.729162e+00
## min.sold.fctr.predict.CSM.X.bagEarth.Y
## D.chrs.pnct13.n.log 0.000000e+00
## D.wrds.stop.n.log 0.000000e+00
## sprice.d20nexp 9.357623e-14
## sprice.log10 -4.605170e+00
## sprice.root2 1.000000e-01
## max.sold.fctr.predict.Final.bagEarth.N
## D.chrs.pnct13.n.log 2.7080502
## D.wrds.stop.n.log 2.3978953
## sprice.d20nexp 0.9995001
## sprice.log10 6.9077453
## sprice.root2 31.6226185
## max.sold.fctr.predict.Final.bagEarth.Y
## D.chrs.pnct13.n.log 1.7917595
## D.wrds.stop.n.log 2.5649494
## sprice.d20nexp 0.9995001
## sprice.log10 6.4377516
## sprice.root2 25.0000000
## min.sold.fctr.predict.Final.bagEarth.N
## D.chrs.pnct13.n.log 0.000000e+00
## D.wrds.stop.n.log 0.000000e+00
## sprice.d20nexp 1.929714e-22
## sprice.log10 -4.605170e+00
## sprice.root2 1.000000e-01
## min.sold.fctr.predict.Final.bagEarth.Y
## D.chrs.pnct13.n.log 0.000000e+00
## D.wrds.stop.n.log 0.000000e+00
## sprice.d20nexp 2.681004e-14
## sprice.log10 -4.605170e+00
## sprice.root2 1.000000e-01
## [1] "newobs sold.fctr.predict.Final.bagEarth Y: max > max of Train range: 3"
## UniqueID sold.fctr.predict.Final.bagEarth D.chrs.n.log
## 2020 12031 Y 4.663439
## 2076 12087 Y 4.663439
## 2329 12340 Y 4.624973
## D.wrds.stop.n.log
## 2020 1.386294
## 2076 1.098612
## 2329 2.564949
## id cor.y exclude.as.feat
## D.chrs.n.log D.chrs.n.log -0.055576665 FALSE
## D.wrds.stop.n.log D.wrds.stop.n.log 0.003851183 FALSE
## cor.y.abs cor.high.X freqRatio
## D.chrs.n.log 0.055576665 D.terms.post.stop.n.log 13.455696
## D.wrds.stop.n.log 0.003851183 <NA> 8.732484
## percentUnique zeroVar nzv is.cor.y.abs.low
## D.chrs.n.log 5.3513514 FALSE FALSE FALSE
## D.wrds.stop.n.log 0.5405405 FALSE FALSE FALSE
## interaction.feat shapiro.test.p.value rsp_var_raw id_var
## D.chrs.n.log <NA> 4.162678e-50 FALSE NA
## D.wrds.stop.n.log <NA> 4.444633e-54 FALSE NA
## rsp_var max min max.sold.fctr.N max.sold.fctr.Y
## D.chrs.n.log NA 4.682131 0 4.682131 4.644391
## D.wrds.stop.n.log NA 2.564949 0 2.302585 2.302585
## min.sold.fctr.N min.sold.fctr.Y
## D.chrs.n.log 0 0
## D.wrds.stop.n.log 0 0
## max.sold.fctr.predict.CSM.X.bagEarth.N
## D.chrs.n.log 4.644391
## D.wrds.stop.n.log 2.302585
## max.sold.fctr.predict.CSM.X.bagEarth.Y
## D.chrs.n.log 4.624973
## D.wrds.stop.n.log 2.302585
## min.sold.fctr.predict.CSM.X.bagEarth.N
## D.chrs.n.log 0
## D.wrds.stop.n.log 0
## min.sold.fctr.predict.CSM.X.bagEarth.Y
## D.chrs.n.log 0
## D.wrds.stop.n.log 0
## max.sold.fctr.predict.Final.bagEarth.N
## D.chrs.n.log 4.663439
## D.wrds.stop.n.log 2.397895
## max.sold.fctr.predict.Final.bagEarth.Y
## D.chrs.n.log 4.663439
## D.wrds.stop.n.log 2.564949
## min.sold.fctr.predict.Final.bagEarth.N
## D.chrs.n.log 0
## D.wrds.stop.n.log 0
## min.sold.fctr.predict.Final.bagEarth.Y
## D.chrs.n.log 0
## D.wrds.stop.n.log 0
## [1] "newobs total range outliers: 6"
#stop(here"); glb_to_sav(); sav_obsout_df <- obsout_df; all.equal(sav_obsout_df, obsout_df); obsout_df <- sav_obsout_df
if (!is.null(glbOutStackFnames)) {
for (fname in glbOutStackFnames) {
print(sprintf("Stacking file %s to prediction output...", fname))
#obsout_df <- dplyr::arrange_(rbind(obsout_df, read.csv(fname)), "UniqueID")
obsout_df <- dplyr::arrange_(rbind(obsout_df,
#read.csv(fname) %>% filter(!(UniqueID %in% obsout_df$UniqueID))),
#read.csv(fname) %>% filter(!(UniqueID %in% obsout_df[, glb_id_var]))),
read.csv(fname) %>%
dplyr::filter_(interp(~!(var %in% obsout_df$var),
var = as.name(glb_id_var)))),
glb_id_var)
if (nrow(obsout_df) != length(unique(obsout_df[, glb_id_var])))
stop("Potential dups in stacked prediction output")
}
}
out_fname <- paste0(glb_out_pfx, "out.csv")
write.csv(obsout_df, out_fname, quote = FALSE, row.names = FALSE)
#cat(" ", "\n", file=submit_fn, append=TRUE)
# print(orderBy(~ -max.auc.OOB, glb_models_df[, c("id",
# "max.auc.OOB", "max.Accuracy.OOB")]))
for (txt_var in glbFeatsText) {
# Print post-stem-words but need post-stop-words for debugging ?
print(sprintf(" All post-stem-words term weights for %s:", txt_var))
myprint_df(glb_post_stem_words_terms_df_lst[[txt_var]])
terms_mtrx <- glb_post_stem_words_terms_mtrx_lst[[txt_var]]
print(glb_allobs_df[
which(terms_mtrx[, tail(glb_post_stem_words_terms_df_lst[[txt_var]], 1)$pos] > 0),
c(glb_id_var, glbFeatsText)])
print(nrow(subset(glb_post_stem_words_terms_df_lst[[txt_var]], freq == 1)))
#print(glb_allobs_df[which(terms_mtrx[, 207] > 0), c(glb_id_var, glbFeatsText)])
#unlist(strsplit(glb_allobs_df[2157, "description"], ""))
#glb_allobs_df[2442, c(glb_id_var, glbFeatsText)]
#terms_mtrx[2442, terms_mtrx[2442, ] > 0]
print(sprintf(" All post-stem-words term freq distribution for %s:", txt_var))
print(table(glb_post_stem_words_terms_df_lst[[txt_var]]$freq))
print(sprintf(" All post-stem-words term length distribution for %s:", txt_var))
print(table(nchar(glb_post_stem_words_terms_df_lst[[txt_var]]$term)))
print(subset(glb_post_stem_words_terms_df_lst[[txt_var]], nchar(term) >= 10))
print(sprintf(" Analyzed term weights for %s:", txt_var))
tmp_df <- glb_post_stem_words_terms_df_lst[[txt_var]]
anl_terms_vctr <- union(select_terms, assoc_terms)
print(subset(tmp_df, term %in% anl_terms_vctr))
# tmp_freq1_df <- subset(tmp_df, freq == 1)
# tmp_freq1_df$top_n <- grepl(paste0(top_n_vctr, collapse="|"), tmp_freq1_df$term)
# print(subset(tmp_freq1_df, top_n == TRUE))
}
## [1] " All post-stem-words term weights for descr.my:"
## term weight freq pos cor.y cor.y.abs chisq.stat
## condit condit 160.55353 492 52 -0.033248924 0.033248924 68.76178
## likenew likenew 123.78010 70 117 -0.043168766 0.043168766 22.07653
## use use 111.06226 285 210 0.003025811 0.003025811 45.28121
## in in 102.43546 432 98 -0.071653919 0.071653919 40.30764
## and and 92.37461 331 20 0.006010357 0.006010357 38.45444
## is is 87.72451 335 110 -0.042931491 0.042931491 26.34374
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## condit 3.361980e-06 36.82927 1.351351 TRUE 61.51671
## likenew 1.817939e-01 257.71429 0.972973 TRUE 54.11495
## use 1.518411e-02 86.63158 1.513514 TRUE 40.77891
## in 1.981535e-02 33.52174 1.351351 TRUE 46.12932
## and 7.095553e-02 55.24138 1.513514 TRUE 35.73653
## is 5.541564e-01 54.06667 1.567568 TRUE 35.26992
## weight.Y weight.NA
## condit 43.14002 55.89681
## likenew 19.52427 50.14088
## use 35.93377 34.34958
## in 26.82731 29.47884
## and 31.78712 24.85096
## is 23.45595 28.99864
## term weight freq pos cor.y cor.y.abs chisq.stat
## box box 59.340298 106 35 -0.05514222 0.05514222 18.410401
## case case 35.355615 82 45 -0.01093585 0.01093585 15.342040
## refurbish refurbish 27.630379 34 165 -0.04207824 0.04207824 19.808709
## look look 12.889585 21 121 -0.03799866 0.03799866 6.945728
## left left 8.323993 11 115 0.05209703 0.05209703 7.017799
## white white 6.887557 10 219 0.01544875 0.01544875 5.234404
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## box 0.4289404 177.8000 1.0270270 TRUE 26.6716211
## case 0.6383630 178.2000 1.0270270 TRUE 16.8145544
## refurbish 0.0480341 228.1250 0.6486486 TRUE 19.3257802
## look 0.6427700 611.3333 0.5405405 TRUE 6.9592112
## left 0.4270290 921.0000 0.4324324 TRUE 0.4395142
## white 0.6313818 920.5000 0.4324324 TRUE 2.6046679
## weight.Y weight.NA
## box 11.227308 21.4413693
## case 12.734727 5.8063336
## refurbish 3.646842 4.6577567
## look 2.318041 3.6123327
## left 6.414507 1.4699719
## white 3.551183 0.7317054
## term weight freq pos cor.y cor.y.abs chisq.stat
## 4g 4g 2.200200 3 9 0.0002965679 0.0002965679 2.023052e+00
## sprint sprint 2.037099 2 191 -0.0215577316 0.0215577316 1.281078e-27
## verizon verizon 2.037099 2 212 -0.0215577316 0.0215577316 1.281078e-27
## tmobil tmobil 1.893062 2 203 0.0094480109 0.0094480109 2.023052e+00
## ipad1 ipad1 1.834814 2 101 0.0067428569 0.0067428569 2.023052e+00
## gold gold 1.137069 1 86 -0.0215577316 0.0215577316 1.281078e-27
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## 4g 0.3636637 1848 0.1621622 TRUE 0.6989804
## sprint 1.0000000 1849 0.1081081 TRUE 0.7407634
## verizon 1.0000000 1849 0.1081081 TRUE 0.7407634
## tmobil 0.3636637 1848 0.1621622 TRUE 0.7407634
## ipad1 0.3636637 1848 0.1621622 TRUE 0.7977452
## gold 1.0000000 1849 0.1081081 TRUE 1.1370687
## weight.Y weight.NA
## 4g 0.6116078 0.8896114
## sprint 0.0000000 1.2963359
## verizon 0.0000000 1.2963359
## tmobil 1.1522986 0.0000000
## ipad1 1.0370687 0.0000000
## gold 0.0000000 0.0000000
## UniqueID
## 1177 11183
## descr.my
## 1177 *** Likenew, Apple iPadAir2 Gold 128GB. Comes with AC adapter and lightning cable.
## [1] 1
## [1] " All post-stem-words term freq distribution for descr.my:"
##
## 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19
## 1 4 3 3 1 2 1 1 13 8 13 6 13 5 9 5 6 8
## 20 21 22 23 24 25 26 27 28 30 31 32 34 35 36 37 38 40
## 2 5 1 3 1 2 5 8 3 1 7 2 3 1 1 3 2 2
## 42 43 44 45 46 50 51 52 53 54 55 57 58 59 61 63 64 65
## 1 2 1 2 2 1 1 2 1 1 1 2 3 1 1 1 1 1
## 67 70 72 75 77 78 79 80 81 82 88 97 99 100 101 106 109 117
## 1 1 2 2 3 1 1 1 1 2 1 1 1 1 1 1 2 2
## 125 129 151 154 160 167 176 197 198 208 211 214 249 279 285 286 331 335
## 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
## 432 492
## 1 1
## [1] " All post-stem-words term length distribution for descr.my:"
##
## 1 2 3 4 5 6 7 8 9 10
## 6 17 28 64 51 29 15 8 6 2
## term weight freq pos cor.y cor.y.abs chisq.stat
## profession profession 9.495620 16 160 -0.07142724 0.07142724 9.508800
## manufactur manufactur 8.616795 8 123 0.01332077 0.01332077 6.928535
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## profession 0.04956674 613.0 0.2702703 TRUE 6.606743
## manufactur 0.32750691 921.5 0.3783784 TRUE 3.089182
## weight.Y weight.NA
## profession 0.000000 2.888877
## manufactur 4.481277 1.046336
## [1] " Analyzed term weights for descr.my:"
## term weight freq pos cor.y cor.y.abs chisq.stat
## condit condit 160.55353 492 52 -0.033248924 0.033248924 68.76178
## use use 111.06226 285 210 0.003025811 0.003025811 45.28121
## in in 102.43546 432 98 -0.071653919 0.071653919 40.30764
## good good 86.95851 197 87 0.016394675 0.016394675 33.86257
## screen screen 73.07057 208 172 0.040605274 0.040605274 32.79902
## with with 63.69164 214 223 -0.066087601 0.066087601 33.25670
## of of 52.99927 151 139 0.052259530 0.052259530 34.49697
## mint mint 52.07871 63 128 -0.055691207 0.055691207 32.30119
## or or 51.11272 125 144 -0.022614420 0.022614420 36.49790
## cosmet cosmet 43.18436 117 55 -0.088480863 0.088480863 32.40489
## minor minor 41.27081 117 127 -0.042692360 0.042692360 33.12974
## light light 36.41889 81 116 -0.032814746 0.032814746 35.12786
## 100 100 27.52852 64 3 -0.111398502 0.111398502 30.45739
## from from 24.73125 57 78 -0.030653359 0.030653359 34.28905
## hous hous 24.59165 72 94 -0.129274878 0.129274878 41.95872
## chisq.pval nzv.freqRatio nzv.percentUnique nzv weight.N
## condit 3.361980e-06 36.82927 1.3513514 TRUE 61.51671
## use 1.518411e-02 86.63158 1.5135135 TRUE 40.77891
## in 1.981535e-02 33.52174 1.3513514 TRUE 46.12932
## good 3.748545e-02 95.16667 1.1891892 TRUE 29.35392
## screen 3.549380e-02 70.91667 1.1351351 TRUE 23.12678
## with 1.553541e-02 46.88889 1.0270270 TRUE 30.89756
## of 2.295297e-02 145.00000 1.1351351 TRUE 16.02233
## mint 2.024848e-02 94.89474 1.0270270 TRUE 24.27170
## or 9.163373e-03 87.95000 1.0810811 TRUE 22.27352
## cosmet 3.507470e-03 88.40000 0.8108108 TRUE 22.73428
## minor 1.085239e-02 92.52632 0.9729730 TRUE 20.58455
## light 3.817238e-03 99.27778 0.9189189 TRUE 17.42219
## 100 1.342479e-03 180.50000 0.6486486 TRUE 18.16396
## from 6.072414e-04 95.31579 0.7027027 TRUE 10.97996
## hous 3.344151e-06 81.68182 0.5405405 TRUE 17.25642
## weight.Y weight.NA
## condit 43.140019 55.896806
## use 35.933771 34.349578
## in 26.827307 29.478838
## good 30.064015 27.540573
## screen 28.028461 21.915331
## with 16.195788 16.598293
## of 21.710580 15.266363
## mint 6.994811 20.812208
## or 15.175342 13.663856
## cosmet 7.055599 13.394481
## minor 11.627271 9.058990
## light 10.171779 8.824924
## 100 1.314682 8.049871
## from 5.861552 7.889737
## hous 1.193859 6.141364
if (glb_is_classification && glb_is_binomial)
print(glb_models_df[glb_models_df$id == glb_sel_mdl_id,
"opt.prob.threshold.OOB"])
## [1] 0.5
print(sprintf("glb_sel_mdl_id: %s", glb_sel_mdl_id))
## [1] "glb_sel_mdl_id: CSM.X.bagEarth"
print(sprintf("glb_fin_mdl_id: %s", glb_fin_mdl_id))
## [1] "glb_fin_mdl_id: Final.bagEarth"
get_dsp_models_df()
## [1] "Cross Validation issues:"
## Warning in get_dsp_models_df(): Cross Validation issues:
## MFO.myMFO_classfr Random.myrandom_classfr
## 0 0
## Max.cor.Y.rcv.1X1.glmnet Max.cor.Y.rcv.1X1.cp.0.rpart
## 0 0
## CSM.X.bagEarth Final.bagEarth
## 1 1
## id max.Accuracy.OOB
## CSM.X.bagEarth CSM.X.bagEarth 0.8060241
## CSM.X.Interact.glmnet CSM.X.Interact.glmnet 0.8012048
## CSM.X.earth CSM.X.earth 0.7987952
## CSM.X.nnet CSM.X.nnet 0.7915663
## RFE.X.glm RFE.X.glm 0.7879518
## CSM.X.glm CSM.X.glm 0.7867470
## CSM.X.glmnet CSM.X.glmnet 0.7855422
## Max.cor.Y.rcv.1X1.glmnet Max.cor.Y.rcv.1X1.glmnet 0.7722892
## CSM.X.gbm CSM.X.gbm 0.7698795
## Interact.High.cor.Y.glmnet Interact.High.cor.Y.glmnet 0.7698795
## Max.cor.Y.rpart Max.cor.Y.rpart 0.7698795
## Low.cor.X.glmnet Low.cor.X.glmnet 0.7686747
## CSM.X.bayesglm CSM.X.bayesglm 0.7674699
## Max.cor.Y.rcv.3X3.glmnet Max.cor.Y.rcv.3X3.glmnet 0.7662651
## Max.cor.Y.rcv.3X1.glmnet Max.cor.Y.rcv.3X1.glmnet 0.7662651
## Max.cor.Y.rcv.3X5.glmnet Max.cor.Y.rcv.3X5.glmnet 0.7650602
## Max.cor.Y.rcv.5X1.glmnet Max.cor.Y.rcv.5X1.glmnet 0.7638554
## Max.cor.Y.rcv.5X3.glmnet Max.cor.Y.rcv.5X3.glmnet 0.7638554
## Max.cor.Y.rcv.5X5.glmnet Max.cor.Y.rcv.5X5.glmnet 0.7638554
## RFE.X.glmnet RFE.X.glmnet 0.7626506
## All.X.glmnet All.X.glmnet 0.7614458
## CSM.X.avNNet CSM.X.avNNet 0.7614458
## CSM.X.rf CSM.X.rf 0.7602410
## CSM.X.rpart CSM.X.rpart 0.7590361
## Max.cor.Y.rcv.1X1.cp.0.rpart Max.cor.Y.rcv.1X1.cp.0.rpart 0.7433735
## MFO.myMFO_classfr MFO.myMFO_classfr 0.4614458
## Random.myrandom_classfr Random.myrandom_classfr 0.4614458
## Final.glm Final.glm NA
## Final.bagEarth Final.bagEarth NA
## max.AUCROCR.OOB max.AUCpROC.OOB
## CSM.X.bagEarth 0.8751643 0.8027144
## CSM.X.Interact.glmnet 0.8636807 0.7820106
## CSM.X.earth 0.8533245 0.8002815
## CSM.X.nnet 0.8693232 0.7883570
## RFE.X.glm 0.8700066 0.7851882
## CSM.X.glm 0.8705557 0.7836958
## CSM.X.glmnet 0.8713734 0.7937629
## Max.cor.Y.rcv.1X1.glmnet 0.8197236 0.7665376
## CSM.X.gbm 0.8482836 0.7573963
## Interact.High.cor.Y.glmnet 0.8189000 0.7551533
## Max.cor.Y.rpart 0.7855854 0.7445254
## Low.cor.X.glmnet 0.8727052 0.7801532
## CSM.X.bayesglm 0.8720510 0.7902203
## Max.cor.Y.rcv.3X3.glmnet 0.8197470 0.7603840
## Max.cor.Y.rcv.3X1.glmnet 0.8197353 0.7592654
## Max.cor.Y.rcv.3X5.glmnet 0.8196593 0.7603840
## Max.cor.Y.rcv.5X1.glmnet 0.8195600 0.7615026
## Max.cor.Y.rcv.5X3.glmnet 0.8195600 0.7615026
## Max.cor.Y.rcv.5X5.glmnet 0.8193790 0.7641135
## RFE.X.glmnet 0.8728278 0.7861198
## All.X.glmnet 0.8721444 0.7835089
## CSM.X.avNNet 0.8285057 0.7765959
## CSM.X.rf 0.8492707 0.7831321
## CSM.X.rpart 0.7890637 0.7534652
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.7934621 0.7504950
## MFO.myMFO_classfr 0.5000000 0.5000000
## Random.myrandom_classfr 0.4956046 0.5064252
## Final.glm NA NA
## Final.bagEarth NA NA
## max.Accuracy.fit opt.prob.threshold.fit
## CSM.X.bagEarth 0.8027402 0.5
## CSM.X.Interact.glmnet 0.8316958 0.4
## CSM.X.earth 0.8241614 0.4
## CSM.X.nnet 0.8267681 0.4
## RFE.X.glm 0.8217402 0.4
## CSM.X.glm 0.8264355 0.4
## CSM.X.glmnet 0.8323381 0.4
## Max.cor.Y.rcv.1X1.glmnet 0.7843137 0.4
## CSM.X.gbm 0.8323391 0.4
## Interact.High.cor.Y.glmnet 0.8026098 0.4
## Max.cor.Y.rpart 0.7964073 0.5
## Low.cor.X.glmnet 0.8349657 0.5
## CSM.X.bayesglm 0.8293912 0.4
## Max.cor.Y.rcv.3X3.glmnet 0.7954221 0.5
## Max.cor.Y.rcv.3X1.glmnet 0.7950911 0.5
## Max.cor.Y.rcv.3X5.glmnet 0.7962655 0.5
## Max.cor.Y.rcv.5X1.glmnet 0.7990899 0.5
## Max.cor.Y.rcv.5X3.glmnet 0.7964364 0.5
## Max.cor.Y.rcv.5X5.glmnet 0.7970687 0.5
## RFE.X.glmnet 0.8259789 0.4
## All.X.glmnet 0.8303886 0.4
## CSM.X.avNNet 0.8313664 0.3
## CSM.X.rf 0.8320236 0.5
## CSM.X.rpart 0.8251457 0.9
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.8323529 0.4
## MFO.myMFO_classfr 0.4627451 0.4
## Random.myrandom_classfr 0.4627451 0.4
## Final.glm 0.8160349 0.4
## Final.bagEarth 0.8111806 0.4
## opt.prob.threshold.OOB
## CSM.X.bagEarth 0.5
## CSM.X.Interact.glmnet 0.4
## CSM.X.earth 0.4
## CSM.X.nnet 0.5
## RFE.X.glm 0.5
## CSM.X.glm 0.5
## CSM.X.glmnet 0.4
## Max.cor.Y.rcv.1X1.glmnet 0.4
## CSM.X.gbm 0.3
## Interact.High.cor.Y.glmnet 0.3
## Max.cor.Y.rpart 0.3
## Low.cor.X.glmnet 0.3
## CSM.X.bayesglm 0.3
## Max.cor.Y.rcv.3X3.glmnet 0.4
## Max.cor.Y.rcv.3X1.glmnet 0.4
## Max.cor.Y.rcv.3X5.glmnet 0.4
## Max.cor.Y.rcv.5X1.glmnet 0.4
## Max.cor.Y.rcv.5X3.glmnet 0.4
## Max.cor.Y.rcv.5X5.glmnet 0.4
## RFE.X.glmnet 0.3
## All.X.glmnet 0.3
## CSM.X.avNNet 0.2
## CSM.X.rf 0.3
## CSM.X.rpart 0.3
## Max.cor.Y.rcv.1X1.cp.0.rpart 0.3
## MFO.myMFO_classfr 0.4
## Random.myrandom_classfr 0.4
## Final.glm NA
## Final.bagEarth NA
if (glb_is_regression) {
print(sprintf("%s OOB RMSE: %0.4f", glb_sel_mdl_id,
glb_models_df[glb_models_df$id == glb_sel_mdl_id, "min.RMSE.OOB"]))
if (!is.null(glb_category_var)) {
#stop(here"); glb_to_sav(); glb_ctgry_df <- sav_ctgry_df
# OOB_ctgry_df <- myget_category_stats(glb_OOBobs_df, glb_sel_mdl_id, "OOB")
# glb_ctgry_df <- merge(glb_ctgry_df, subset(OOB_ctgry_df, select=-.n.OOB),
# by=glb_category_var, all=TRUE)
#
# #glb_fitobs_df <- glb_get_predictions(glb_fitobs_df, glb_sel_mdl_id, glb_rsp_var_out)
# glb_ctgry_df <- merge(glb_ctgry_df,
# myget_category_stats(obs_df=glb_fitobs_df, mdl_id=glb_sel_mdl_id, label="fit"),
# by=glb_category_var, all=TRUE)
# row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
glb_ctgry_df <- merge(glb_ctgry_df,
myget_category_stats(obs_df=glb_trnobs_df, mdl_id=glb_fin_mdl_id, label="trn"),
by=glb_category_var, all=TRUE)
row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
glb_ctgry_df <- merge(glb_ctgry_df,
myget_category_stats(obs_df=glb_newobs_df, mdl_id=glb_fin_mdl_id, label="new"),
by=glb_category_var, all=TRUE)
row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
if (any(grepl("OOB", glbMdlMetricsEval)))
print(orderBy(~-err.abs.OOB.mean, glb_ctgry_df)) else
print(orderBy(~-err.abs.fit.mean, glb_ctgry_df))
print(colSums(glb_ctgry_df[, -grep(glb_category_var, names(glb_ctgry_df))]))
}
if ((glb_rsp_var %in% names(glb_newobs_df)) &&
!(any(is.na(glb_newobs_df[, glb_rsp_var])))) {
pred_stats_df <-
mypredict_mdl(mdl=glb_models_lst[[glb_fin_mdl_id]],
df=glb_newobs_df,
rsp_var=glb_rsp_var,
rsp_var_out=glb_rsp_var_out,
mdl_id=glb_fin_mdl_id,
label="new",
model_summaryFunction=glb_sel_mdl$control$summaryFunction,
model_metric=glb_sel_mdl$metric,
model_metric_maximize=glb_sel_mdl$maximize,
ret_type="stats")
print(sprintf("%s prediction stats for glb_newobs_df:", glb_fin_mdl_id))
print(pred_stats_df)
}
}
if (glb_is_classification) {
print(sprintf("%s OOB confusion matrix & accuracy: ", glb_sel_mdl_id))
print(t(confusionMatrix(glb_OOBobs_df[, paste0(glb_rsp_var_out, glb_sel_mdl_id)],
glb_OOBobs_df[, glb_rsp_var])$table))
if (!is.null(glb_category_var)) {
glb_ctgry_df <- merge(glb_ctgry_df,
myget_category_stats(obs_df=glb_trnobs_df, mdl_id=glb_fin_mdl_id, label="trn"),
by=glb_category_var, all=TRUE)
row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
glb_ctgry_df <- merge(glb_ctgry_df,
myget_category_stats(obs_df=glb_newobs_df, mdl_id=glb_fin_mdl_id, label="new"),
by=glb_category_var, all=TRUE)
row.names(glb_ctgry_df) <- glb_ctgry_df[, glb_category_var]
if (any(grepl("OOB", glbMdlMetricsEval)))
print(orderBy(~-err.abs.OOB.mean, glb_ctgry_df[, -1])) else
print(orderBy(~-err.abs.fit.mean, glb_ctgry_df[, -1]))
print(colSums(glb_ctgry_df[, -grep(glb_category_var, names(glb_ctgry_df))]))
# print("Top category OOB errors:")
# print(glb_OOBobs_df[(glb_OOBobs_df[, glb_category_var] ==
# dsp_ctgry_df[1, glb_category_var]) &
# !glb_OOBobs_df[, predct_accurate_var_name],
# c(glb_id_var, glb_rsp_var_raw, paste0(glb_rsp_var_out, glb_sel_mdl_id),
# glb_category_var,
# row.names(head(myget_feats_importance(glb_sel_mdl), 5)),
# # "biddable", "startprice", "condition",
# glbFeatsText)])
}
if ((glb_rsp_var %in% names(glb_newobs_df)) &&
!(any(is.na(glb_newobs_df[, glb_rsp_var])))) {
print(sprintf("%s new confusion matrix & accuracy: ", glb_fin_mdl_id))
print(t(confusionMatrix(glb_newobs_df[, paste0(glb_rsp_var_out, glb_fin_mdl_id)],
glb_newobs_df[, glb_rsp_var])$table))
}
}
## [1] "CSM.X.bagEarth OOB confusion matrix & accuracy: "
## Prediction
## Reference N Y
## N 378 69
## Y 92 291
## .n.OOB .n.Fit .n.Tst .freqRatio.Fit .freqRatio.OOB
## iPad1 95 130 88 0.12745098 0.11445783
## iPadmini2 53 54 56 0.05294118 0.06385542
## iPadmini 123 154 111 0.15098039 0.14819277
## iPadAir2 69 102 62 0.10000000 0.08313253
## iPad3 61 92 55 0.09019608 0.07349398
## iPad2 142 144 154 0.14117647 0.17108434
## iPadmini3 36 54 38 0.05294118 0.04337349
## Unknown 96 108 92 0.10588235 0.11566265
## iPad4 73 84 68 0.08235294 0.08795181
## iPadAir 82 98 74 0.09607843 0.09879518
## .freqRatio.Tst err.abs.fit.sum err.abs.fit.mean .n.fit
## iPad1 0.11027569 21.92498 0.1686537 130
## iPadmini2 0.07017544 13.60767 0.2519939 54
## iPadmini 0.13909774 28.35769 0.1841409 154
## iPadAir2 0.07769424 18.39394 0.1803327 102
## iPad3 0.06892231 19.30601 0.2098479 92
## iPad2 0.19298246 26.26756 0.1824136 144
## iPadmini3 0.04761905 10.91522 0.2021337 54
## Unknown 0.11528822 24.25180 0.2245537 108
## iPad4 0.08521303 12.91294 0.1537254 84
## iPadAir 0.09273183 14.69546 0.1499537 98
## err.abs.OOB.sum err.abs.OOB.mean err.abs.trn.sum
## iPad1 30.191199 0.3178021 50.82874
## iPadmini2 16.497317 0.3112701 28.61440
## iPadmini 35.413123 0.2879116 66.35525
## iPadAir2 18.188133 0.2635961 37.06182
## iPad3 15.577574 0.2553701 34.71725
## iPad2 34.346223 0.2418748 61.16178
## iPadmini3 8.705077 0.2418077 19.23957
## Unknown 23.071138 0.2403244 46.22124
## iPad4 16.959354 0.2323199 28.44309
## iPadAir 17.574463 0.2143227 32.42787
## err.abs.trn.mean .n.trn err.abs.new.sum err.abs.new.mean .n.new
## iPad1 0.2259055 225 NA NA 88
## iPadmini2 0.2674243 107 NA NA 56
## iPadmini 0.2395496 277 NA NA 111
## iPadAir2 0.2167358 171 NA NA 62
## iPad3 0.2269101 153 NA NA 55
## iPad2 0.2138524 286 NA NA 154
## iPadmini3 0.2137730 90 NA NA 38
## Unknown 0.2265747 204 NA NA 92
## iPad4 0.1811662 157 NA NA 68
## iPadAir 0.1801548 180 NA NA 74
## .n.OOB .n.Fit .n.Tst .freqRatio.Fit
## 830.000000 1020.000000 798.000000 1.000000
## .freqRatio.OOB .freqRatio.Tst err.abs.fit.sum err.abs.fit.mean
## 1.000000 1.000000 190.633259 1.907749
## .n.fit err.abs.OOB.sum err.abs.OOB.mean err.abs.trn.sum
## 1020.000000 216.523602 2.606599 405.071018
## err.abs.trn.mean .n.trn err.abs.new.sum err.abs.new.mean
## 2.192046 1850.000000 NA NA
## .n.new
## 798.000000
if (!is.null(glb_featsimp_df))
print(orderBy(as.formula(paste0("~ -", glb_sel_mdl_id, ".importance")),
subset(glb_featsimp_df, importance > 10)))
## CSM.X.bagEarth.importance importance
## biddable 100.00000000 100.00000
## spdiff.cut.fctr(10,100] 63.91698828 56.78357
## spdiff.cut.fctr(-10,-1] 59.43297171 62.23575
## spdiff.cut.fctr(-1,0] 56.73370396 53.89430
## spdiff.cut.fctr(1,10] 54.11003294 56.13727
## spdiff.cut.fctr(0,1] 50.72618776 52.24063
## spdiff.cut.fctr(-100,-10] 46.54349726 46.82988
## spdiff.cut.fctr(100,1e+03]:biddable 42.56274353 44.58104
## D.weight.sum.stem.stop.Ratio 40.22875015 25.83513
## sprice.root2 32.56884802 17.33528
## sprice.d20nexp 26.61299348 40.18996
## D.wrds.n.log 25.47867052 22.22936
## D.chrs.n.log 25.32510965 26.24851
## D.chrs.uppr.n.log 22.30668254 15.81313
## prdl.my.fctriPadAir2 20.20338098 32.47450
## prdl.my.fctriPadAir 19.81560245 38.95569
## D.weight.post.stem.sum 18.95279661 15.39065
## D.ratio.wrds.stop.n.wrds.n 17.57323375 10.83625
## D.terms.post.stop.n.log 16.27642872 35.88702
## D.ratio.weight.sum.wrds.n 11.48014772 19.29884
## spdiff.cut.fctr(-100,-10]:biddable 0.08594036 30.55450
## spdiff.cut.fctr(10,100]:biddable 0.08594036 27.68519
## startprice.dcm1.is9 0.08594036 25.44863
## prdl.my.fctriPad4:.clusterid.fctr3 0.08594036 18.71030
## spdiff.cut.fctr(1,10]:biddable 0.08594036 12.60741
## prdl.my.fctriPad3 0.08594036 11.37299
## Final.bagEarth.importance
## biddable 100.00000
## spdiff.cut.fctr(10,100] 56.78357
## spdiff.cut.fctr(-10,-1] 62.23575
## spdiff.cut.fctr(-1,0] 53.89430
## spdiff.cut.fctr(1,10] 56.13727
## spdiff.cut.fctr(0,1] 52.24063
## spdiff.cut.fctr(-100,-10] 46.82988
## spdiff.cut.fctr(100,1e+03]:biddable 44.58104
## D.weight.sum.stem.stop.Ratio 25.83513
## sprice.root2 17.33528
## sprice.d20nexp 40.18996
## D.wrds.n.log 22.22936
## D.chrs.n.log 26.24851
## D.chrs.uppr.n.log 15.81313
## prdl.my.fctriPadAir2 32.47450
## prdl.my.fctriPadAir 38.95569
## D.weight.post.stem.sum 15.39065
## D.ratio.wrds.stop.n.wrds.n 10.83625
## D.terms.post.stop.n.log 35.88702
## D.ratio.weight.sum.wrds.n 19.29884
## spdiff.cut.fctr(-100,-10]:biddable 30.55450
## spdiff.cut.fctr(10,100]:biddable 27.68519
## startprice.dcm1.is9 25.44863
## prdl.my.fctriPad4:.clusterid.fctr3 18.71030
## spdiff.cut.fctr(1,10]:biddable 12.60741
## prdl.my.fctriPad3 11.37299
print("glb_newobs_df prediction stats:")
## [1] "glb_newobs_df prediction stats:"
if (glb_is_regression)
print(myplot_histogram(glb_newobs_df, paste0(glb_rsp_var_out, glb_fin_mdl_id)))
if (glb_is_classification)
print(table(glb_newobs_df[, paste0(glb_rsp_var_out, glb_fin_mdl_id)]))
##
## N Y
## 484 314
# Use this to see how prediction changes by changing one or more values
# players_df <- data.frame(id=c("Chavez", "Giambi", "Menechino", "Myers", "Pena"),
# OBP=c(0.338, 0.391, 0.369, 0.313, 0.361),
# SLG=c(0.540, 0.450, 0.374, 0.447, 0.500),
# cost=c(1400000, 1065000, 295000, 800000, 300000))
# players_df$RS.predict <- predict(glb_models_lst[[csm_mdl_id]], players_df)
# print(orderBy(~ -RS.predict, players_df))
# dsp_chisq.test(Headline.contains="[Vi]deo")
if ((length(diff <- setdiff(names(glb_trnobs_df), names(glb_allobs_df))) > 0) ||
(length(diff <- setdiff(names(glb_fitobs_df), names(glb_allobs_df))) > 0) ||
(length(diff <- setdiff(names(glb_OOBobs_df), names(glb_allobs_df))) > 0) ||
(length(diff <- setdiff(names(glb_newobs_df), names(glb_allobs_df))) > 0)) {
print(diff)
stop("glb_*obs_df not in sync")
}
if (glb_save_envir)
save(glb_feats_df, glb_allobs_df,
#glb_trnobs_df, glb_fitobs_df, glb_OOBobs_df, glb_newobs_df,
glb_models_df, dsp_models_df, glb_models_lst, glb_model_type,
glb_sel_mdl, glb_sel_mdl_id,
glb_fin_mdl, glb_fin_mdl_id,
file = paste0(glb_out_pfx, "prdnew_dsk.RData"))
sav_fin_mdl <- glb_fin_mdl; sav_sel_mdl <- glb_sel_mdl
#save(sav_fin_mdl, sav_sel_mdl, file=paste0(glb_out_pfx, "sav_mdl.RData"))
# load(file=paste0(glb_out_pfx, "sav_mdl_01.RData"), verbose=TRUE)
# prv_fin_mdl <- sav_fin_mdl; prv_sel_mdl <- sav_sel_mdl
# load(file=paste0(glb_out_pfx, "sav_mdl.RData"), verbose=TRUE)
# cur_fin_mdl <- sav_fin_mdl; cur_sel_mdl <- sav_sel_mdl
# all.equal(cur_fin_mdl, prv_fin_mdl)
# cur_fitobs_df <- cur_fin_mdl$trainingData; prv_fitobs_df <- prv_fin_mdl$trainingData; all.equal(cur_fitobs_df, prv_fitobs_df)
# nrow(cur_fitobs_df); nrow(prv_fitobs_df)
# names(cur_fitobs_df); names(prv_fitobs_df)
# all.equal(cur_fin_mdl$bestTune, prv_fin_mdl$bestTune)
# all.equal(glb_sel_mdl, sav_sel_mdl)
# cur_fitobs_df <- cur_sel_mdl$trainingData; prv_fitobs_df <- prv_sel_mdl$trainingData; all.equal(cur_fitobs_df, prv_fitobs_df)
# head(myget_feats_importance(glb_sel_mdl)); head(myget_feats_importance(sav_sel_mdl))
# head(myget_feats_importance(cur_sel_mdl)); head(myget_feats_importance(prv_sel_mdl))
# tmp_replay_lst <- replay.petrisim(pn=glb_analytics_pn,
# replay.trans=(glb_analytics_avl_objs <- c(glb_analytics_avl_objs,
# "data.new.prediction")), flip_coord=TRUE)
# print(ggplot.petrinet(tmp_replay_lst[["pn"]]) + coord_flip())
glb_chunks_df <- myadd_chunk(glb_chunks_df, "display.session.info", major.inc=TRUE)
## label step_major step_minor label_minor bgn
## 16 predict.data.new 8 0 0 1118.228
## 17 display.session.info 9 0 0 1150.697
## end elapsed
## 16 1150.696 32.468
## 17 NA NA
Null Hypothesis (\(\sf{H_{0}}\)): mpg is not impacted by am_fctr.
The variance by am_fctr appears to be independent. #{r q1, cache=FALSE} # print(t.test(subset(cars_df, am_fctr == "automatic")$mpg, # subset(cars_df, am_fctr == "manual")$mpg, # var.equal=FALSE)$conf) # We reject the null hypothesis i.e. we have evidence to conclude that am_fctr impacts mpg (95% confidence). Manual transmission is better for miles per gallon versus automatic transmission.
## label step_major step_minor label_minor bgn
## 11 fit.models 6 1 1 374.177
## 5 extract.features 3 0 0 32.543
## 14 fit.data.training 7 0 0 924.675
## 12 fit.models 6 2 2 850.472
## 10 fit.models 6 0 0 311.142
## 7 cluster.data 3 2 2 251.205
## 16 predict.data.new 8 0 0 1118.228
## 15 fit.data.training 7 1 1 1092.833
## 1 import.data 1 0 0 10.300
## 9 select.features 5 0 0 299.849
## 13 fit.models 6 3 3 918.727
## 2 inspect.data 2 0 0 26.380
## 3 scrub.data 2 1 1 30.902
## 8 partition.data.training 4 0 0 298.964
## 4 transform.data 2 2 2 31.944
## 6 manage.missing.data 3 1 1 251.042
## end elapsed duration
## 11 850.471 476.294 476.294
## 5 251.041 218.499 218.498
## 14 1092.832 168.157 168.157
## 12 918.725 68.254 68.253
## 10 374.177 63.035 63.035
## 7 298.964 47.759 47.759
## 16 1150.696 32.468 32.468
## 15 1118.227 25.394 25.394
## 1 26.379 16.080 16.079
## 9 311.142 11.293 11.293
## 13 924.674 5.948 5.947
## 2 30.902 4.522 4.522
## 3 31.943 1.042 1.041
## 8 299.849 0.885 0.885
## 4 32.543 0.599 0.599
## 6 251.204 0.162 0.162
## [1] "Total Elapsed Time: 1,150.696 secs"
## label step_major step_minor label_minor bgn
## 12 fit.models_1_CSM.X 2 10 bagEarth 632.678
## 9 fit.models_1_CSM.X 2 7 avNNet 485.847
## 19 fit.models_1_CSM.X.Interact 5 1 glmnet 807.061
## 6 fit.models_1_CSM.X 2 4 nnet 419.453
## 14 fit.models_1_RFE.X 3 1 glmnet 761.101
## 17 fit.models_1_All.X 4 1 glmnet 788.224
## 5 fit.models_1_CSM.X 2 3 glmnet 401.081
## 10 fit.models_1_CSM.X 2 8 rf 602.218
## 8 fit.models_1_CSM.X 2 6 gbm 470.264
## 11 fit.models_1_CSM.X 2 9 earth 619.977
## 4 fit.models_1_CSM.X 2 2 bayesglm 392.187
## 7 fit.models_1_CSM.X 2 5 rpart 462.548
## 3 fit.models_1_CSM.X 2 1 glm 384.637
## 15 fit.models_1_RFE.X 3 2 glm 780.999
## 18 fit.models_1_Best.Interact 5 0 setup 807.016
## 13 fit.models_1_RFE.X 3 0 setup 761.088
## 2 fit.models_1_CSM.X 2 0 setup 384.624
## 1 fit.models_1_bgn 1 0 setup 384.614
## 16 fit.models_1_All.X 4 0 setup 788.215
## end elapsed duration
## 12 761.087 128.410 128.409
## 9 602.217 116.370 116.370
## 19 850.462 43.401 43.401
## 6 462.547 43.094 43.094
## 14 780.998 19.897 19.897
## 17 807.015 18.792 18.791
## 5 419.453 18.372 18.372
## 10 619.976 17.758 17.758
## 8 485.846 15.582 15.582
## 11 632.678 12.701 12.701
## 4 401.081 8.894 8.894
## 7 470.263 7.715 7.715
## 3 392.186 7.549 7.549
## 15 788.214 7.216 7.215
## 18 807.060 0.044 0.044
## 13 761.101 0.013 0.013
## 2 384.637 0.013 0.013
## 1 384.624 0.010 0.010
## 16 788.223 0.008 0.008
## [1] "Total Elapsed Time: 850.462 secs"